抱歉我的新手问题:P如果我提示“java -version”在Windows系统上的cmd中,我是否保证系统将能够运行.jar文件如果我没有收到任何错误

有帮助吗?

解决方案

我想检查JRE的唯一保证方法是尝试运行一个小型Java程序。

或者甚至可能不是 - 我想可以想象一个系统只能安装部分Java标准库,在这种情况下,一个小的测试JAR可能工作正常,但完整的程序可能没有。虽然我无法想象为什么有人会遇到以这种方式设置系统的麻烦。

其他提示

从命令行,你应该可以调用“java --version”如果未安装java或当前安装的版本信息,将返回错误。

嗯,显然不是。你可以在PATH中放一个名为java.bat anywhare的空文件,比如C:\ Windows \ System32。调用“java”不会产生任何错误,但这并不意味着安装了JRE。

为什么不运行一个小类文件,它将一个值写入一个然后检查的文件?如果失败,则无效。

一个好的值可能是java.version系统属性的值。

在Windows上,您可以在HKLM \ SOFTWARE \ JavaSoft \ Java Plug-in中检查注册表。从那里,每个子项都是一个已安装的JRE。

编辑以下是C#代码,它将返回已安装JRE的字符串数组

public string[] GetInstalledJavas() {
        // hold the registry subkeys that list the installed JRE's
        string[] jres = null;
        try {
            RegistryKey myKey = Registry.LocalMachine;
            myKey = myKey.OpenSubKey(@"SOFTWARE\JavaSoft\Java Plug-in"); // read-only
            jres = myKey.GetSubKeyNames();
        } catch (Exception myException) {
            Console.Writeline(myException.ToString());
        }
        return jres;
}

我实际上建议,如果你只关心检查Windows机器,检查注册表是否有JNLP的处理程序...这应该保证存在一个相对较新的JRE。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top