Sto provando a rilevare se c'è una JVM installata e dove si trova, quindi posso eseguire java.exe
.Come rilevare presenza e posizione di JVM su Windows?
Tutto quello che sono riuscito a trovare è HKCU\Software\JavaSoft\Java Runtime Environment\<ver>
. È sicuro presumere che sia installato in %PROGRAMFILES%\Java\jre<ver>
?
Sto cercando di farlo in C#, ma presumo che la risposta sia piuttosto agnostica del linguaggio, quindi qualsiasi risposta è apprezzata.
EDIT: Ok mi sciocca, ho trovato How to detect whether java runtime is installed or not on a computer using c# che mi indicò HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion
che funziona con HKLM\Software\JavaSoft\Java Runtime Environment\<ver>\JavaHome
. Sono riuscito a trovarli al di sotto di HKLM\Software\Wow6432Node\JavaSoft\Java Runtime Environment
. C'è un modo per rilevare quale di questi dovrei controllare senza cercare di annusare il tipo di CPU?
La voce di registro contiene comunque tutte le versioni di Java? Poiché alcune applicazioni hanno versioni precedenti di JRE in bundle con loro e possono sovrascrivere le voci del registro precedenti, il che è un vero problema. – biziclop
@biziclop Contiene tutte le versioni affiancate alla chiave CurrentVersion descritta sopra che punta al JRE predefinito –
Che bello sapere, grazie. La mia osservazione è ancora valida, non fidatevi ciecamente dell'attuale versione. :) – biziclop