Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取嵌入式java的版本_Java - Fatal编程技术网

如何获取嵌入式java的版本

如何获取嵌入式java的版本,java,Java,我正在我的应用程序上实现GetDown,并将其配置为嵌入JRE,以防止用户安装的版本出现问题。 但是我没有找到一种方法来检查嵌入的JRE是否真的是被使用的,我可以在我的计算机上卸载java来测试它(我的雇主没有给我管理员权限,耶!) 命令System.out.println(System.getProperty(“java.version”)向我展示安装在用户计算机上的java,但是如何才能获得应用程序真正使用的java版本 感谢您的回答,并为我的英语不好感到抱歉。System.out.prin

我正在我的应用程序上实现GetDown,并将其配置为嵌入
JRE
,以防止用户安装的版本出现问题。 但是我没有找到一种方法来检查嵌入的
JRE
是否真的是被使用的,我可以在我的计算机上卸载java来测试它(我的雇主没有给我管理员权限,耶!)

命令
System.out.println(System.getProperty(“java.version”)向我展示安装在用户计算机上的java,但是如何才能获得应用程序真正使用的java版本


感谢您的回答,并为我的英语不好感到抱歉。

System.out.println(System.getProperty(“java.version”)不显示用户计算机上安装了哪个Java版本,因为可以安装多个版本。它显示程序当前在哪个Java版本上执行。

命令System.out.println(System.getProperty(“Java.version”);有效地提供应用程序使用的版本。对我来说,这是一个糟糕的推论。 一开始,我使用了JRE 1.8.0_111,但命令毫无理由地返回1.8.0_60(即使在没有安装java的计算机上,我也遇到了这个问题)

我尝试过更改嵌入式JRE(使用1.8.0_172),现在命令返回1.8.0_172。因此,我假设问题来自以前的JRE(1.8.0_111)


谢谢你的回答,他们给了我一些线索。

你使用的是什么ide?你有权访问生成的.class文件吗?如果是这样,请遵循以下步骤:系统属性
java.version
会提供当前正在运行的JVM的版本(不是系统上安装但当前未运行的内容)。是什么让你不这么想的?一个与wha有关的有趣事实t@Andreaジーティーオー said:如果您检查.class文件的hexa,您将看到类似于
cafeba be 00 00 34
,其中34是java版本
cafe babe
是java类文件的标志。OP不是要求编译类所用的java版本,而是要求当前正在运行的java版本。我不这么认为,我使用jre 1.8.0_111作为嵌入式java,在另一台计算机上,当应用程序调用该命令时,它向我展示了版本1.8.0_60。因为另一台计算机使用“1.8.0_60”。。这是运行编译代码的JVM版本。这就是您所问的“如何才能获得应用程序真正使用的java版本”。因此,我的配置不起作用…嗯,这是可能的。请检查IDE中定义的JDK(通常在项目属性中),如果您在命令行中运行它,请使用
java-version
检查java版本。这应该显示与
System.getProperty
MyIDE(EclipseNeon 2)相同的结果,使用安装在m'y计算机上的JDK1.8.0_111(我在其中嵌入/复制jre)。我将在未安装java的计算机上进行尝试。