Eclipse Java版本与编译的Jar不同

时间:2015-07-30 14:19:58

标签: java eclipse jar

我使用jdk1.7.0_72

在Eclipse上安装了Java应用程序

从runnable jar运行项目时遇到问题,从Eclipse运行时,应用程序运行正常。该应用程序使用cacert,当我使用runnable jar时,由于某种原因失败了。我注意到的是,当我从Eclipse运行它时,runnable 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” 当我点击关于Java时,我得到了这个: “1.7.0_75-B13”

4 个答案:

答案 0 :(得分:0)

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

您可以在PATH变量中设置正确的Java版本,也可以在Preferences - Java - Installed JRE的菜单中将其设置在Eclipse中。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

你肯定使用不同的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,如果您想将JAR分发给没有&#的计算机,那么这将是有问题的。 39;安装了Eclipse。

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

答案 3 :(得分:0)

" runnable jar的java版本"因执行环境不同而无法区分:它是JVM版本。

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

Eclipse IDE 中:

    Window / 偏好设置中的
  • 转到 Java /已安装的JRE
  • 添加 1.7.0_72-b14 JRE
  • 将新添加的JRE检查为工作区的默认

使用文件 / 导出 / jar文件清理/重新编译项目并重新导出 jar 文件