【问题标题】:check java is installed on windows system检查java是否安装在windows系统上
【发布时间】:2014-10-26 04:08:57
【问题描述】:

如何检查java是否安装在windows系统上并从客户端文件夹中的jvm.dll获取完整路径?

我使用了这段代码,但我不知道如何检索当前版本

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;

【问题讨论】:

    标签: java jvm c++builder


    【解决方案1】:

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

    希望这会有所帮助,卢克

    编辑:

    如果您想查看 java 是否以编程方式安装在另一台计算机上,请尝试使用 .bat 文件查看,this 链接应该会有所帮助。 或者使用jsmooth将jar构建成.exe,这样,如果没有安装java会提示用户安装java。

    【讨论】:

    • 他想查看用户 X 是否安装了 Java,而不是他。
    【解决方案2】:

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

    同时,要找到路径,我相信您可以通过迭代环境变量并查找 JAVA_HOME 来完成。

    【讨论】:

    • 我会选择使用 JNI_CreateJavaVM()JNIEnv::GetVersion() 而不是解析命令行输出。而且您不需要“迭代”通过环境变量,大多数平台都提供了一种通过名称查询特定变量的值的方法。在 Windows 上,它是 GetEnvironmentVariable()。但是,Windows 不使用JAVA_HOME(至少,我的系统上没有JAVA_HOME 变量,即使安装了Java)。
    • 关于 JAVA_HOME 你是对的:它不能保证工作。第一个建议是非常有效的,所以我认为您应该将其发布为可能的解决方案的替代方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多