当前位置: 首页 > 知识库问答 >
问题:

Eclipse中JRE系统库的概念

夔庆
2023-03-14

我已经使用eclipse多年了,但我从未想到过这一点。我在系统上安装了JDK7,并将其用作工作区JRE。然而,当我在maven项目中包含以下定义时,库部分将java库显示为[JavaSE 1.6],如下图所示。

<build>
     <plugins>
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                   <source>1.6</source>
                   <target>1.6</target>
                </configuration>
        </plugin>
    </plugins>
</build>

我理解源和目标配置的概念。但是,我只是不理解JDK7库作为JRE6的方式(或者它是吗?)。有人能解释一下吗?

我使用带有JDK 1.7的Eclipse Mars作为工作台JRE

共有2个答案

高墨一
2023-03-14

这是您的项目运行所需的java的最低配置版本(帮助-

参考以下剪报,

邢硕
2023-03-14

当您将配置设置为比您用于构建的更旧的JRE时,无法防止使用错误的API。

从手册中

注意:仅仅设置目标选项并不能保证您的代码实际上在具有指定版本的JRE上运行。陷阱是意外使用仅存在于以后的JRE中的API,这会使您的代码在运行时失败并出现链接错误。为了避免此问题,您可以将编译器的引导类路径配置为与目标JRE匹配,或者使用动物嗅探器Maven插件来验证您的代码没有使用意外的API。

但要回答您的问题:

但是,我只是不理解JDK7库作为JRE6的方式。有人能解释一下吗?

没有,至少不是真的。例如,如果您(仅)安装了JRE 8,但将项目设置为JRE 7,则可以编写这一行代码,而不会出现编译错误,因为这是合法的JRE 7 Java,只需使用JRE 8运行时中添加的方法(join)。

String join = String.join("", "a", "b");

使用JRE 7运行时,您将在运行时得到以下结果:

Exception in thread "main" java.lang.NoSuchMethodError: java.lang.String.join(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/String;
  at snippet.Snippet.main(Snippet.java:5)

因此,如果您真的想确保法规遵从性,请在系统上安装正确的JRE进行构建和开发

 类似资料:
  • 问题内容: 我正在使用安装了m2e插件的Eclipse EE 3.7。我在Eclipse中设置了JDK7。当我导入Maven项目时,JRE设置为,因此我遇到了与Java 6相关的东西的编译问题。相反,我希望将eclipse中的JRE默认设置为JRE 当我尝试在第一个屏幕上的Eclipse File-> new-> Java项目中打开一个新项目时,我有一个选择JRE的选项,第三个选项是 从中我可以看

  • 我的构建路径中有以下错误:将项目导入Eclipse后的JRE System Library[WebSphere v6.1 JRE](未绑定)。有人知道如何修复它吗?

  • 我正试图建立一个java项目来使用openjdk-11,到目前为止,我找到的所有答案都让我左右为难。我使用的是ubuntu 20.04,所以我使用了命令“sudo apt install openjdk-11-jre”。安装似乎很成功,但现在我似乎无法找到已安装JRE的文件路径 我以为它会在/user/lib/jvm/java-11-openjdk-amd64的某个地方。当我将eclipse指向那

  • 我用的是早期的MacBook。10.6.8 将javac版本绑定到 终端返回javac 1.6.0_65,其中javac返回usr/bin/javac 使用Eclipse Juno 所以我假设安装了JRE+JDK。如有任何帮助,我们将不胜感激!我已经想办法解决这个问题好几个小时了。谢谢你。

  • 对于我的课程,我从教授提供给我们的在线源代码中导入了代码,并尝试在Eclipse Juno中运行它(我不确定它是否会影响到哪个版本),我在项目“cs112”中得到了错误消息“Unbound classpath container:‘JRE System Library[OSGi/Minimum-1.2]”。我研究了这个问题的几个答案,并尝试了多种解决方案,包括构建路径和添加库,我将其命名为JRE,

  • 墨客区块链——众链之母,革命性的商用区块链架构系统 MOAC,A commercial blockchain architectural system 1. 关于MOAC 1.1 墨客简介 Mother of All Chain (MOAC) Blockchain (简称 “MOAC”,中文译为“MOAC区块链”)是一个开源的区块链平台,通过分层配置结构实现在P2P网络上支持多种子区块链,由硅谷顶