![](/img/trans.png)
[英]Compiled .Jar Crashes (no java console) but compiles and runs in Eclipse?
[英]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版本。
您可以根据以下指南在您的环境系统变量中更改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中 :
清洁/编译项目的转口与文件 / 导出 / jar文件的jar文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.