Programo aplicaciones de Windows usando Java y esto crea un archivo ".jar" no un archivo ".exe". Cuando una computadora cliente sin tiempo de ejecución java instalado abre el archivo ".jar", se ejecuta como un archivo con winrar. Todo lo que quiero saber es cómo detectar si el tiempo de ejecución de java está instalado o no en una computadora usando el código C# para mostrarle a un usuario de MessageBox que instale java runtime, o inicia el archivo ".jar" usando java runtime si está instalado .Cómo detectar si el tiempo de ejecución de Java está instalado o no
Respuesta
Puede verificar en el registro. Esto le dirá si tiene un JRE y cuya versión.
De this document:
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\<version number>
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit\<version number>
donde el incluye los números mayores, menores y la versión del parche; por ejemplo, 1.4.2_06
Se debe tener en cuenta que "HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ Java Development Kit \
puede comprobar el registro
RegistryKey rk = Registry.LocalMachine;
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment");
string currentVerion = subKey.GetValue("CurrentVersion").ToString();
Un pequeño applet en una página HTML que anula una redirección a una página "Por favor instalar Java".
EDITAR: Esta es casi la única manera realmente a prueba de balas. Cualquier clave de registro que contenga JavaSoft es probablemente solo para Sun JVM y no para ninguna otra (como IBM o BEA).
Comience 'java -version' en un proceso hijo. Verifique el código de salida y la salida devuelta para 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. Cómo detectar si numpy está instalado
- 2. ¿Comprueba si IIS está instalado o no?
- 3. Java: ¿cómo detectar el tiempo de ejecución actual de java es un JRE o JDK?
- 4. Cómo saber si node.js está instalado o no
- 5. ¿Cómo puedo detectar si quicktime está instalado con javascript?
- 6. detectar si apio está disponible/Ejecución
- 7. Detectar a través de javascript si Silverlight está instalado
- 8. ¿La forma correcta de detectar si está instalado SQLCMD.exe?
- 9. ¿Cómo saber si el componente VBA de Office está instalado?
- 10. ¿Cómo comprobar si estoy en tiempo de ejecución o diseño?
- 11. Verificar si Solidworks está instalado?
- 12. Detectando si java está instalado y habilitado con javascript
- 13. Android 2.2 - ¿Cómo puedo detectar si estoy instalado en la tarjeta SD o no?
- 14. ¿Cómo detectar si Java está habilitado en IE?
- 15. Java está instalado, en el listado, pero la ejecución produce "./java: No existe ningún archivo o directorio"
- 16. ¿Cómo comprobar si está correctamente instalado mongodb
- 17. cómo detectar si el doble largo es de precisión extendida o no está en tiempo de compilación
- 18. ¿Cómo puedo detectar si mi proceso se está ejecutando UAC elevado o no?
- 19. ¿Detecta si Mod_Security está instalado con PHP?
- 20. ¿Cómo comprobar si Suhosin está instalado?
- 21. ¿Cómo determinar si el proveedor de VFPOLEDB está instalado/registrado?
- 22. Cómo determinar si VSTO 2010 Runtime está instalado?
- 23. Detectar si qt ejecuta una compilación de depuración en el tiempo de ejecución
- 24. Uso de C# Cómo detectar si Windows Installer 4.5 está instalado
- 25. iOS - Evite que se elimine el perfil de configuración del iPhone O verifique si está instalado
- 26. ¿Cómo fallar correctamente si .NET no está instalado?
- 27. ¿Cómo detectar qué tiempo de ejecución de .NET se está utilizando (MS vs Mono)?
- 28. En PHP 5.x, ¿cómo puedo detectar si una clase es abstracta o no en tiempo de ejecución?
- 29. Detecta si el iPhone está ejecutando una compilación Debug/Distribution en tiempo de ejecución
- 30. ¿Mysqli no está instalado?
Se abre solo con WinRAR si tienen instalado WinRAR :). –