Esecuzione di java in modalità a 32 bit su Windows 64


Ho bisogno di eseguire java in modalità a 32 bit sotto Windows 8.1 a 64 bit.

Ho installato java 7 jre sotto c:\Program Files\Java\jre7 (JVM a 64 bit) e sotto c:\Program Files (x86)\Java\jre7 (JVM a 32 bit).

Tuttavia, se da cmd emetto java -d32 -version, ottengo questo errore:

Error: This Java instance does not support a 32-bit JVM.
Please install the desired version.

Senza l'interruttore -d32 conferma l'esecuzione della JVM a 64 bit:

Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

Così ho aperto il pannello di controllo java e aggiunto la JVM a 32 bit all'utente installato JRE (la scheda di sistema non mi consente di modificare nulla anche se in esecuzione come amministratore), ma non cambia nulla.

Ho letto alcuni post di utenti che dicono che con java 7+ la modalità -d32 dovrebbe essere supportata ma non riesco a ottenerla. Qualcuno può aiutarmi per favore?

Nota: {[21] } Si noti che non è possibile rimuovere la JVM a 64 bit perché ne ho bisogno per altre applicazioni

Author: lviggiani, 2014-06-03

4 answers

Ho trovato un'altra soluzione a questo. Usando launchj4 posso avvolgere il mio jar in un exe e posso specificare il JRE che voglio usare e forzarlo a cercare una JVM a 32 bit, impostare la versione min e max ecc. Il wrapper cercherà automaticamente i JRE installati e sceglierà quello che soddisfa i requisiti.

Anche il confezionamento del mio jar in un exe è più conveniente per la distribuzione della mia applicazione.

 3
Author: lviggiani, 2014-06-03 11:20:45

Secondo questo FAQ:

Come faccio a selezionare tra l'operazione a 32 e 64 bit? Qual è il valore predefinito?

Le opzioni-d32 e-d64 sono state aggiunte al programma di avvio Java per specificare se il programma deve essere eseguito in un 32 o 64 bit ambiente. Su Solaris questi corrispondono ai dati ILP32 e LP64 modelli, rispettivamente. Poiché Solaris ha sia un J2SE a 32 che a 64 bit implementazione contenuta all'interno della stessa installazione di Java, è possibile specificare entrambe le versioni. Se non è specificato né-d32 né-d64, il l'impostazione predefinita è l'esecuzione in un ambiente a 32 bit. Altri comandi Java (javac, javadoc, ecc.) avrà raramente bisogno di essere eseguito in un 64-bit ambiente. Tuttavia, le opzioni-d32/ - d64 possono essere passate a questi e poi al lanciatore Java utilizzando il-J stabilito opzione prefisso (ad esempio: - J-d64).
Tutte le altre piattaforme (Windows e Linux) contengono pacchetti di installazione separati a 32 e 64 bit. Se entrambi i pacchetti sono installati su un sistema, si seleziona uno o l'altro aggiungendo l'appropriato " bin" directory al tuo percorso. Per coerenza, le implementazioni Java su Linux accetta l'opzione-d64.

 3
Author: RealHowTo, 2014-06-03 11:39:21

È possibile avere sia 32bit che 64 bit installati sulla stessa macchina. Infatti è possibile avere più versioni di ciascuno dei 32bit e 64bit installato (ad esempio - java6 e java7). Poiché ogni JRE verrà installato in cartelle diverse, di solito non importa.

Quando si eseguono versioni diverse di jre, l'applicazione cercherà l'eseguibile Java utilizzando la variabile PATH. Quindi, se Java 32bit è il primo sul percorso, si avranno problemi con l'esecuzione di un'applicazione Java 64bit. È possibile modificare il percorso per utilizzare una determinata versione di Java, ad esempio definendo una variabile d'ambiente JAVA32HOME con il valore C:\java\java6 (32bit) e modificare il comando in

%JAVA32HOME%\bin\java ...

Oppure è possibile aggiungere manualmente la versione che si desidera utilizzare, prima nella variabile PATH. Ricorda la prima istanza di java.exe trovato durante la ricerca il tuo PERCORSO sarà quello che viene eseguito.

 1
Author: Mustafa sabir, 2014-06-03 08:30:37

Perché non si installa anche la versione a 32 bit di Java dal link sottostante:

Download Java per tutti i sistemi operativi

 0
Author: durrrr, 2014-06-03 08:01:30