繁体   English   中英

Eclipse Java版本与已编译的Jar不同

[英]Eclipse Java version not same as compiled Jar

我在使用jdk1.7.0_72的Eclipse上有一个Java应用程序

从可运行的jar运行项目时遇到问题,从Eclipse运行时,应用程序可以完美运行。 该应用程序使用一个cacert,当我使用可运行的jar时,由于某种原因它会失败。 我注意到的是,当我从Eclipse运行它时,可运行jar的Java版本是不同的。 这引起了问题。

这是我从Eclipse运行时的系统属性的片段:

**sun.boot.library.path=C:\Program Files\Java\jdk1.7.0_72\jre...
java.vm.version=24.72-b04
java.runtime.version=1.7.0_72-b14
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jdk1.7.0_72\jre…
java.library.path=C:\Program Files\Java\jdk1.7.0_72\bin…**

这是我从JAR运行时的系统属性的摘要:

**sun.boot.library.path=C:\Program Files\Java\jre7\bin
java.vm.version=24.75-b04
java.runtime.version=1.7.0_75-b13
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jre7\lib\endorsed
java.library.path=C:\Program Files\Java\jre7\bin;C:\Win…**

如何使JAR使用与Eclipse使用的相同版本?

同样,当我运行java -version时,我得到:“ 1.7.0_72”当我单击About Java时,我得到了:“ 1.7.0_75-b13”

如果运行JAR,它将使用您在PATH变量上设置的Java版本。 如果从Eclipse运行它,则可以告诉Eclipse使用哪个版本。 如您所见,library.path变量是不同的,因此在每种情况下都将加载不同的Java。

您可以在PATH变量中设置适当的Java版本,也可以在Eclipse中的Preferences-Java-Installed JRE菜单中进行设置。

您的计算机上似乎至少安装了两个Java版本。

  1. 在您的Eclipse中配置了Java 1.7.0_72-b14
  2. 在您的PATH中配置了Java 1.7.0_75-b13

您可以根据以下指南在您的环境系统变量中更改Java: https : //docs.oracle.com/javase/tutorial/essential/environment/paths.html

您绝对可以使用其他的JRE。

您同时安装了JDK和JRE。 碰巧的是,JDK具有一个内部JRE,您可以在第一行中看到它:

**sun.boot.library.path=C:\Program Files\Java\jdk1.7.0_72\jre... 

JRE安装在这里

C:\Program Files\Java\jre7\bin

最好的选择是指向Eclipse以使用已安装的JRE执行JAR,因为另一种选择是要求JAR使用Eclipse JDK / JRE,如果要将Java发行版分发到没有Eclipse的机器上,这将是有问题的安装。

在Eclipse中,您可以指定多个JRE并为其命名,创建一个新的JRE并为其指定路径,然后可以转到项目的运行选项,并告诉它在运行JAR时使用此库。

由于不同的执行环境,“ runnable jar的java版本 ”不能有所不同:它是JVM版本。

问题是jar的编译版本高于执行环境。

Eclipse IDE中

  • 在“ 窗口” / “首选项”中,转到Java /已安装的JRE
  • 添加您的1.7.0_72-b14 JRE
  • 检查新添加的JRE作为工作区的默认值

清洁/编译项目的转口与文件 / 导出 / jar文件jar文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM