EclipseJava版本与编译的Jar不同

EclipseJava版本与编译的Jar不同,java,eclipse,jar,Java,Eclipse,Jar,我在Eclipse上有一个使用jdk1.7.0_72的Java应用程序 当从一个可运行的jar运行一个项目时,我遇到了一个问题,当从Eclipse运行时,应用程序可以完美地工作。应用程序使用了一个cacert,当我使用runnable jar时,由于某种原因它失败了。我注意到,当我从Eclipse运行runnable jar时,它的java版本是不同的。这引起了一些问题 以下是我从Eclipse运行时的系统属性片段: **sun.boot.library.path=C:\Program File

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

当从一个可运行的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”

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


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

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


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

看起来您的机器上至少安装了两个Java版本

  • Java 1.7.0_72-b14是在Eclipse中配置的
  • Java 1.7.0_75-b13已在您的路径中配置
  • 您可以根据本指南更改环境系统变量中的java:

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

  • Java 1.7.0_72-b14是在Eclipse中配置的
  • Java 1.7.0_75-b13已在您的路径中配置
  • 您可以根据本指南更改环境系统变量中的java:

    您肯定在使用不同的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使用EclipseJDK/JRE,如果您想将JAR分发给未安装Eclipse的机器,这将是一个问题


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

    您肯定在使用不同的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使用EclipseJDK/JRE,如果您想将JAR分发给未安装Eclipse的机器,这将是一个问题

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

    “可运行JAR的java版本”不能因为不同的执行环境而有所不同:它是JVM版本

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

    在Eclipse IDE中:

    • 在窗口/首选项中转到Java/Installed JRE
    • 添加您的1.7.0_72-b14 JRE
    • 选中新添加的JRE作为工作区的默认值
    清理/重新编译项目并使用file/export/jar file重新导出jar文件“可运行jar的java版本”不能因为不同的执行环境而有所不同:它是JVM版本

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

    在Eclipse IDE中:

    • 在窗口/首选项中转到Java/Installed JRE
    • 添加您的1.7.0_72-b14 JRE
    • 选中新添加的JRE作为工作区的默认值

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

    由于执行环境不同,“可运行jar的java版本”不能不同:它是JVM版本。当在jar中导出时,在EclipseIDE中,将Project/Java编译器中的“编译器遵从性级别”降级为1.6可能会达到以下效果。。。或者将项目的JRE更改为1.7.0_72-b14,使之成为Eclipse IDE。您是否对已安装的JRE进行了修改?由于执行环境不同,“可运行jar的java版本”不能有所不同:它是JVM版本。当在jar中导出时,在EclipseIDE中,将Project/Java编译器中的“编译器遵从性级别”降级为1.6可能会达到以下效果。。。或者将项目的JRE更改为1.7.0_72-b14,并将其转换为Eclipse IDE。是否修改了已安装的JRE?C:\csvn\bin\;C:\csvn\Python25\;F:\app\client\Administrator\product\12.1.0\client\u 1;F:\app\client\Administrator\product\12.1.0\client\u 1\bin;C:\ProgramFiles\WinRAR;F:\app\Administrator\product\11.2.0\client\bin;C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell\SysMgt\oma\bin;C:\Program Files\Dell\SysMgt\shared\bin;C:\Program Files\Dell\SysMgt\idrac;C:\Program Files\Dell\SysMgt\iSM\shared\bin;C:\Program Files\Dell\SysMgt\iSM\ismeng\bin;C:\Program Files\Java\jdk1.7.0\u 72\b这是我的路径,它包含