I programma applicazioni Windows utilizzando Java e questo crea un file ".jar" non un file ".exe". Quando un computer client senza java runtime installato apre il file ".jar", viene eseguito come archivio con winrar. Tutto quello che voglio sapere è come rilevare se java runtime è installato o meno su un computer usando il codice C# per mostrare un MessageBox che dice all'utente di installare java runtime, o lancia il file ".jar" usando il runtime java se è installato .Come rilevare se Java Runtime è installato o meno
risposta
È possibile controllare nel registro. Questo ti dirà se hai un JRE e quale versione.
Da this document:
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\<version number>
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit\<version number>
dove il include i maggiori, minori e la versione patch di numeri; per esempio, 1.4.2_06
Si noti che "HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ Java Development Kit \
È possibile controllare il registro di
RegistryKey rk = Registry.LocalMachine;
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment");
string currentVerion = subKey.GetValue("CurrentVersion").ToString();
Una piccola applet in una pagina html che annulla un redirect ad una pagina "Si prega di installare Java".
EDIT: Questo è quasi l'unico modo veramente a prova di proiettile. Qualsiasi chiave di registro contenente JavaSoft è molto probabilmente solo per Sun JVM e non per altre (come IBM o BEA).
Avviare 'java -version' in un processo figlio. Controlla il codice di uscita e restituito l'output per versioninfo
List<String> output = new List<string>();
private bool checkIfJavaIsInstalled()
{
bool ok = false;
Process process = new Process();
try
{
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.Arguments = "/c \"" + "java -version " + "\"";
process.OutputDataReceived += new DataReceivedEventHandler((s, e) =>
{
if (e.Data != null)
{
output.Add((string) e.Data);
}
});
process.ErrorDataReceived += new DataReceivedEventHandler((s, e) =>
{
if (e.Data != null)
{
output.Add((String) e.Data);
}
});
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
ok = (process.ExitCode == 0);
}
catch
{
}
return (ok);
}
- 1. Come sapere se node.js è installato o meno
- 2. Java: come rilevare il runtime java corrente è un JRE o JDK?
- 3. Verificare se IIS è installato o no?
- 4. git non è installato o meno nel PATH
- 5. modo indipendente dalla piattaforma di rilevare se è installato git
- 6. Modo corretto per rilevare se SQLCMD.exe è installato?
- 7. Controlla se l'url è valido o meno
- 8. Come posso rilevare se una finestra del browser è focalizzata o meno?
- 9. Come posso rilevare se l'orientamento dell'interfaccia utente è bloccato o meno su iOS?
- 10. Impossibile determinare se il Play Store di Google è installato o meno sul dispositivo Android
- 11. verifica se un pacchetto è presente o meno
- 12. come verificare se è installato mangusta (MongoDb) o no
- 13. Come si verifica se Java JDK è installato su Mac?
- 14. Se utilizzare CMS o meno
- 15. Come verificare se l'opzione wifi è abilitata o meno
- 16. Come verificare se NFC è abilitato o meno in Android?
- 17. Come verificare se un'attività è in esecuzione o meno
- 18. Come verificare se 3g è attivo o meno in Android
- 19. Come posso verificare se un file è o meno un'immagine?
- 20. come verificare se allow_url_fopen è abilitato o meno
- 21. Come rilevare se è supportata un'interfaccia grafica?
- 22. Rilevare se JIT è disponibile
- 23. Come verificare se MongoDB è installato correttamente
- 24. Android 2.2 - Come posso rilevare se sono installato su SDCard o no?
- 25. Javascript Rileva se Adobe Reader è installato
- 26. Come verificare se un thread è già stato avviato o meno in Java?
- 27. Rileva se Mod_Security è installato con PHP?
- 28. Come rilevare se Windows è spegnere o riavviare
- 29. Come rilevare se il segnale GPS è debole o alto?
- 30. Come rilevare se un file è PDF o TIFF?
Si apre solo con WinRAR se hanno installato WinRAR :). –