2012-01-11 8 views
17

ho bisogno per determinare se un particolare sistema ha 32 bit installato Java. Sto facendo una query remota che mi dà solo accesso al filesystem e al registro, quindi non posso tentare di eseguire java.exe o eseguire un codice Java.Come faccio a sapere se Java a 32 bit è installato su x64 Windows, controllando solo il filesystem e il registro?

voglio anche essere sicuro di rilevare sia IBM e Sun Java, così come tutte le altre distribuzioni, che sembrano mettere le cose in luoghi diversi sul filesystem e nel Registro di sistema.

Il migliore che è venuta in mente è quello di verificare la presenza di C: \ Windows \ SysWOW64 \ java.exe. È un modo affidabile per verificare la presenza di Java a 32 bit o ci sono alcune versioni che non inseriranno java.exe in quella cartella?

Aggiornamento: Sto ancora cercando una risposta più solida a questo. Per essere chiari, non ho accesso a un prompt dei comandi. Inoltre, voglio rilevare Java non importa chi sia l'editore, quale numero di versione è installato e indipendentemente dal percorso scelto dall'utente per installarlo.

C: \ Windows \ SysWOW64 \ java.exe sembra soddisfare questi requisiti, ma mi piacerebbe avere qualche conferma da parte di qualcuno più esperto che ogni programma di installazione Java inserirà effettivamente quell'eseguibile lì.

+0

+1 alla tua domanda. Nel mio caso, sto lavorando con Advanced Installer e ho bisogno di sapere quale versione di Java (x86/x64) è installata, controllando i registri di Windows ... – mthama

+0

Anche qui: https://stackoverflow.com/a/ 2062263/632951 – Pacerier

risposta

0

Ho provato entrambi i 32-bit e 64-bit installatori di Oracle e IBM Java su Windows, e la presenza di C: \ Windows \ SysWOW64 \ java.exe sembra essere un modo affidabile per determinare che Java a 32 bit sia disponibile. Non ho provato le versioni precedenti di questi programmi di installazione, ma almeno sembra che dovrebbe essere un modo affidabile per testare, per le versioni più recenti di Java.

1

Se non è Java di Oracle, potrebbe non essere in grado di dire. Quando si installa Oracle Java a 64 bit, i file vanno in C: \ Program Files \ Java, ma quando installo una versione a 32 bit, che di default C: \ Program Files (x86) \ Java, invece. Naturalmente, la persona che ha installato Java potrebbe aver scavalcato quelle impostazioni predefinite.

9

Non si ha accesso al prompt dei comandi?

Metodo 1: Prompt dei comandi

Le specifiche del Java installate nel sistema può essere determinato eseguendo il comando seguente java -version

Metodo 2: Struttura delle cartelle

Nel caso in cui non si abbia accesso al prompt dei comandi, quindi determinare la cartella in cui Java.

32 bit: C:\Program Files (x86)\Java\jdk1.6.0_30

64 bit: C:\Program Files\Java\jdk1.6.0_25

Tuttavia, durante l'installazione è possibile che l'utente potrebbe cambiare la cartella di installazione.

Metodo 3: Registro

Inoltre potrai vedere la versione installata in editor di registro.

  1. Vai a Editor del Registro di

  2. Modifica -> Trova

  3. Ricerca per Java. Otterrete le voci di registro per Java.

  4. Nella voce con nome: DisplayName & DisplayVersion, la versione di Java installata sia visualizzata

+0

Non ho accesso al prompt dei comandi. Sono anche preoccupato che quei percorsi abbiano numeri di versione al loro interno e il fatto che un utente possa cambiare quel percorso al momento dell'installazione. –

+1

È inoltre possibile visualizzare la versione installata nell'editor del Registro di sistema. – Kakarot

+0

Non riesco a trovare le voci di registro a cui ti stai riferendo. Dove sono nel registro? –

3

Controllare questa chiave per macchine Windows a 32 e 64 bit.

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment 

e questo per Windows 64 bit con 32 bit JRE.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment 

Questo funzionerà per l'oracle-sun JRE.

21

Questo sembra fornire le informazioni su Windows:

1.) Aprire una finestra Prompt dei comandi.

2.) Digitare: java -XshowSettings: all e premere INVIO.

3.) Nella finestra di comando verranno visualizzate molte informazioni. Scorrere fino a trovare la stringa: sun.arch.data.model.

4.) Se si dice sun.arch.data.model = 32, la VM è a 32 bit. Se dice sun.arch.data.model = 64, la tua VM è a 64 bit.