【问题标题】:Setting JDK in Eclipse在 Eclipse 中设置 JDK
【发布时间】:2012-11-18 02:29:39
【问题描述】:

我有两个 JDK,分别用于 Java 6 和 7。

我想使用两者来构建我的项目。最初我们只针对 1.6 构建。 我在我的项目设置中看到我可以选择 1.5、1.6 1.7 作为编译器级别。

这些选项是如何添加到 IDE 中的?我从未安装过 Java 1.5。 假设我想要 Java 1.4。我怎样才能让它出现在列表中?我在我的 IDE 首选项中添加了两个不同的 JRE,但这些不是出现在下拉列表中的内容。

【问题讨论】:

    标签: eclipse java


    【解决方案1】:

    您管理Window -> Preferences -> Java -> Installed JRE's tab 中的可用编译器列表。

    在项目构建路径配置对话框中,在库选项卡下,您可以删除JRE System Library 的条目,单击Add Library 并选择已安装的JRE 进行编译。某些编译器可以配置为在后级编译器版本上进行编译。我认为这就是您看到附加版本选项的原因。

    【讨论】:

    • 我通过已安装 JRE 窗口中的“添加”选项添加了自己的 JRE。问题是当我检查我希望 Eclipse 使用的那个时,它没有被选为默认工作区 JRE。因此,当我查看我的项目属性时,“JRE 系统库”仍然存在。当我删除它并选择“使用默认工作区 JRE”时,它才接受了我的更改。当我为工作区选择不同的 JRE 时,我会认为 Eclipse 应该更新了我的项目 JRE
    • 即使它说“使用默认值”,它实际上是在创建/导入项目时使用默认值,并且它永远不会回头。
    • 对于那些找不到“首选项”项的人,它位于“窗口”下拉菜单下。
    • 我通过 windows 首选项路由添加了一个新的 JDK,然后删除并重新导入了我所有的项目,Eclipse 仍然选择了以前的 JDK。我不得不手动更新项目构建路径配置。 Eclipse 永远不会让人失望
    【解决方案2】:

    如 MayoMan 所述,可能需要一些额外的步骤才能正确设置项目和默认工作区 JRE。以下是 Eclipse Luna 中的完整序列:

    • 右键单击您的项目 > 属性
    • 选择左侧的“Java Build Path”,然后选择“JRE System Library”,点击Edit…
    • 选择“工作区默认 JRE”
    • 点击“已安装的 JRE”
    • 如果您在列表中看到所需的 JRE,请选择它(选择 JDK 也可以)
    • 如果没有,请单击搜索...,导航到计算机 > Windows C: > 程序文件 > Java,然后单击确定
    • 现在您应该会看到所有已安装的 JRE,选择您想要的一个
    • 点击确定/完成一百万次

    容易……不。

    【讨论】:

    • 我还得把我的JAVA_HOME环境变量改成JDK的文件夹,JRE不够用。
    • 谢谢乔治! Websters 将默认定义为“在没有用户做出选择的情况下由程序自动使用的选择”。然而 Eclipse 的“Workspace Default JRE”默认没有被选中。
    • 谢谢@Georgie,你节省了我的时间:)
    【解决方案3】:

    要告诉 eclipse 使用 JDK,您必须按照以下步骤操作。

    1. 选择窗口菜单,然后选择首选项。您可以看到一个对话框。
    2. 然后选择Java ---> Installed JRE's
    3. 然后点击添加并选择Standard VM然后点击下一步
    4. 在 JRE 主页中,导航到您安装 JDK 的文件夹(例如,在我的系统中,我的 JDK 位于 C:\Program Files\Java\jdk1.8.0_181\ 中)
    5. 现在点击完成。

    完成以上步骤后,就大功告成了,eclipse会开始使用选中的JDK进行编译。

    【讨论】:

      【解决方案4】:

      Eclipse 的编译器可以确保您的 java 源代码符合给定的 JDK 版本,即使您没有安装该版本。此功能对于确保代码的向后兼容性很有用。

      您的代码仍将由您选择的 JDK 编译和运行。

      【讨论】:

        【解决方案5】:

        配置 JDK

        1. Windows -> Preferences -> Installed JREs,配置已安装的 JDKs
        2. 项目属性、Java 编译器、启用项目特定设置(或配置工作区设置)、JDK 合规性
        3. 项目属性、Java 构建路径、库、添加库、JRE 系统库、工作区默认或备用 JRE(在
        4. 中配置的 JRE 之一

        Maven

        但如果您使用的是 maven,前提是您拥有最新的 JRE(Windows/Preferences/Installed JRE)——例如 JDK 1.8

        可以通过配置maven-compiler-plugin源和目标属性来选择级别1.6、1.7、1.8,像这样

                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.3</version>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                        </configuration>
                    </plugin>
        

        理想情况下,如果您有一个父 pom,您可以在一个地方为父 pom 中的所有模块(Eclipse 项目)执行此操作。

        来源和目标 如果我们想使用 Java 8 语言特性,-source 应该设置为 1.8。此外,要使编译的类与 JVM 1.8 兼容,–target 值应为 1.8。

        一次更新多个项目中损坏的 JRE 库(使用 Maven)

        与其一一更新 JRE 库,不如让 Maven 为你做。

        选择项目并右键单击Maven -> Update Project,将系统库设置为已安装JDK的路径,以防路径损坏(因为您安装了新的JDK或从另一台计算机导入等.) 并根据 pom 中的 maven 源和目标设置设置 JDK 合规性。

        【讨论】:

          【解决方案6】:

          JDK 1.8 有一些更丰富的功能,很多 Eclipse 都不支持。

          如果您在 java 编译器中没有找到 1.8 的 java 合规级别,请继续安装以下 eclipse 32 位或 64 位,具体取决于您的系统支持。

          1. 安装jdk 1.8,然后在里面设置JAVA_HOME和CLASSPATH 环境变量。
          2. 下载eclipse-jee-neon-3-win32并解压:支持java 1.8
          3. 或下载 Oracle Enterprise Pack for Eclipse (12.2.1.5) 并解压 :支持64位操作系统的java 1.8
          4. 右键单击您的项目 > 属性
          5. 选择左侧的“Java Compiler”并将java合规级别设置为1.8 [从下拉菜单中选择 1.8]
          6. 尝试运行一个支持 java 8 的 java 程序,比如 lambda 如下表达式,如果没有编译错误,则表示您的日食 支持到 java 1.8,类似这样:

            interface testI{
                void show();
            }
            
            /*class A implements testI{
                public void show(){
                    System.out.println("Hello");
                }
            }*/
            
            public class LambdaDemo1 {
                public static void main(String[] args) {
                    testI test ;
                    /*test= new A();
                    test.show();*/
                    test = () ->System.out.println("Hello,how are you?"); //lambda 
                    test.show();
                }        
            }
            

          【讨论】:

          • 欢迎来到 StackOverflow 并感谢您的帮助。请考虑通过学习格式来提高答案的可读性。使用tour 可能会支持您这样做。
          猜你喜欢
          • 2014-08-06
          • 2011-06-12
          • 2010-11-28
          • 1970-01-01
          • 1970-01-01
          • 2016-03-27
          • 2018-02-21
          • 2014-02-19
          • 2012-12-04
          相关资源
          最近更新 更多