2014-09-02 83 views
0

如何检查,Java安装在Windows系统上,并从客户端文件夹jvm.dll获取完整路径?检查java安装在Windows系统

我用这个代码,但我不知道如何以检索当前版本

TRegistry* reg = new TRegistry(KEY_READ); 
reg->RootKey = HKEY_CURRENT_USER; 
reg->Access = KEY_ALL_ACCESS; 
bool openResult = reg->OpenKey("SOFTWARE\\JavaSoft\\Java Runtime Environment", true); 
if(!openResult) // cannot create registry keys, use default values 
    return; 
if(!reg->ValueExists("CurrentVersion")) //it's not exist CuurentVersion 
    return; 

回答

0

我不认为写一些代码或类似的东西,需要看是否安装了Java。 要查看它是否安装在Windows上只是去C:\Program Files\Java如果该目录存在,那么你有Java,如果它安装在不同的目录在Windows程序中查找,它应该显示,如果没有安装Java,如果不是,那么你很可能不会有java。 使用this链接查看您的版本,但建议始终获取最新版本。

希望这有助于卢克

编辑:

如果你想看看是否安装另一台计算机上使用Java .bat文件,看看编程尝试,this链接应该有所帮助。 或使用jsmooth构建到.exe的jar文件,如果没有安装java,它会提示用户安装java。

+1

他想看看用户X是否安装了Java,而不是他。 – 2014-09-02 00:15:53

+0

@MarcoAcierno是 – BestHumain 2014-09-02 08:07:55

0

您可以从代码中执行系统“Java -version”命令。 Here是C++的一个例子。要找到你所需要的版本,只要解析你得到的结果。字符串结果将提供您需要的信息。

enter image description here

同时,找到我相信你可以通过环境变量迭代做到这一点,寻找JAVA_HOME的路径。

+0

我会选择使用'JNI_CreateJavaVM()'和'JNIEnv :: GetVersion()'而不是解析命令行输出。而且您不需要通过环境变量“迭代”,大多数平台都提供了通过名称查询特定变量值的方法。在Windows上,它是['GetEnvironmentVariable()'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms683188.aspx)。但是,Windows不使用'JAVA_HOME'(至少,即使安装了Java,我的系统上也没有'JAVA_HOME'变量)。 – 2014-09-03 00:07:30

+0

关于JAVA_HOME你是对的:它不保证工作。第一个建议是相当有效的,所以我相信你应该把它作为可能解决方案的一个替代方案。 – eldjon 2014-09-03 15:09:33