我使用Java编写Windows应用程序,并生成“.jar”文件而不是“.exe”文件。当没有安装Java运行时的客户端计算机打开“.jar”文件时,它将作为winrar存档运行。我想知道的是如何检测是否在运行时使用c#代码的计算机上安装了Java运行时,以显示MessageBox,告诉用户安装Java运行时,或者如果安装了Java运行时,将启动“.jar”文件。如何检测是否安装了Java运行时
8
A
回答
4
您可以检查注册表。这会告诉你,如果你有一个JRE,和哪个版本。
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\<version number>
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit\<version number>
,其中包括主要的,次要的和补丁版本号;例如,1.4.2_06
+0
应该注意,不能使用RegistryKey C#函数以编程方式访问“HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ Java Development Kit \ <版本号>”。 – LeeCambl 2015-02-24 11:35:22
8
您可以检查注册表
RegistryKey rk = Registry.LocalMachine;
RegistryKey subKey = rk.OpenSubKey("SOFTWARE\\JavaSoft\\Java Runtime Environment");
string currentVerion = subKey.GetValue("CurrentVersion").ToString();
0
在取消重定向到“请安装Java”页面的HTML页面一个小的小程序。
编辑:这几乎是唯一真正的防弹方式。包含JavaSoft的任何注册表键很可能只用于Sun JVM,而不是任何其他(如IBM或BEA)。
4
在子进程中启动'java -version'。检查退出代码并返回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. NSIS:检测是否安装了VS2005运行时
- 2. 如何检测是否安装了numpy
- 3. 的Android SDK安装卡在“检测是否安装了Java SDK”
- 4. Autoconf:检测是否安装了emacs
- 5. 检测是否安装了Exchange MAPI
- 6. 检测Mod_Security是否安装了PHP?
- 7. PHP检测是否安装了闪存
- 8. 检测是否安装了ADOBE
- 9. 如何检测Google Fit是否安装了室内装置?
- 10. 检查Java是否安装了Bash
- 11. VSTO运行时是否安装了MS Office安装?
- 12. 如何检测WinPcap库是否安装?
- 13. 如何检测SCCM 2012是否安装?
- 14. 如何检测MySQL是否安装?
- 15. 检测是否从php安装了java的网页服务器
- 16. 检测是否安装了java并使用javascript启用
- 17. 如何检测PC上是否安装了Microsoft ActiveSync
- 18. 如何检测quicktime是否安装了javascript?
- 19. 如何检测客户端计算机是否安装了silverlight?
- 20. 如何检测Kivy是否安装了摄像头?
- 21. 如何在Safari中检测是否安装了应用程序
- 22. 如何检测是否安装了docker for mac?
- 23. 使用C#如何检测是否安装了Windows Installer 4.5
- 24. 检查VC2015运行时是否安装了Wix Installer但是找到32bit或64bit
- 25. 检测MIDlet是否正在安装或运行第一次
- 26. 检测是否Qt是在运行时
- 27. 如果我安装BIDS,SSIS引擎(运行时)是否安装?
- 28. 检测是否安装了任何从右到左的语言
- 29. 运行安装程序或检查程序是否安装
- 30. 如何检查php-fpm是否已安装并正确运行?
它只在WinRAR打开,如果他们有WinRAR安装:)。 – 2010-09-20 20:37:07