【问题标题】:Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment构建路径指定执行环境 J2SE-1.5。工作空间中没有安装与此环境严格兼容的 JRE
【发布时间】:2024-01-10 11:33:01
【问题描述】:

我使用 OS X Yosemite (10.10.2) 并且有一些我想在 Eclipse 中构建的 java 项目。有些项目很旧,它们使用 Java 5、6 和 7。起初,我安装了 JDK 7 和 Eclipse Luna。然后我阅读了thisthis 线程如何在mac 上安装特定的JDK。我使用this 脚本安装JDK,并更改了这两行以兼容优胜美地。

/usr/libexec/PlistBuddy -c "Set :JavaVM:JVMMaximumFrameworkVersion 14.*.*" ./Resources/Info.plist
/usr/libexec/PlistBuddy -c "Set :JavaVM:JVMMaximumSystemVersion "$osx_version".*" ./Resources/Info.plist

通过

/usr/libexec/PlistBuddy -c "Delete :JavaVM:JVMMaximumFrameworkVersion" ./Resources/Info.plist
/usr/libexec/PlistBuddy -c "Delete :JavaVM:JVMMaximumSystemVersion" ./Resources/Info.plist

这是我的/System/Library/Frameworks/JavaVM.framework/Versions 目录的内容

lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.5.0 -> CurrentJDK
drwxr-xr-x  9 root  wheel  306  8 apr 14:32 1.5.0_30
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.6.0 -> CurrentJDK
drwxr-xr-x  7 root  wheel  238  8 apr 14:36 A
lrwxr-xr-x  1 root  wheel    1  8 apr 14:36 Current -> A
lrwxr-xr-x  1 root  wheel   59  8 apr 14:36 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

JDK 7的位置不同,路径为/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk

默认 Java 版本是:

AND:bin andr-work$ java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

这里是 Eclipse 首选项中安装的 JDK

第 7 版

第 6 版

第 5 版

当我想在 java 6 或 7 中构建项目时,我在 Eclipse 中使用 java 编译器没有任何问题

但我无法在 java 5 中构建一些项目,并且可能没有正确设置 java 5 的编译器

我发现this 的博文有这个问题,解决方案是

...用其他人 Mac 上的文件替换“A”子目录

但我不知道有人在优胜美地使用这些 java 版本。

我尝试在 Eclipse 首选项中更改执行环境

但这并没有帮助。

项目属性中的

Java Build PathJ2SE-1.5,我尝试通过Alternate JRE更改执行环境 >

但是当我保存这个设置并再次打开它时J2SE-1.5仍然是执行环境(J2SE-1.5)

然后我尝试在build.xml中添加java sourcetarget

    <?xml version="1.0"?>
<project name="build" default="jar">
    <description>
            A build script
    </description>

    <property name="ant.build.javac.source" value="1.5"/>
    <property name="ant.build.javac.target" value="1.5"/>

    <property name="dist.jar" value="ci-ons.jar"></property>
    <property name="dist.folder" value="dist"></property>
    <property name="src.folder" value="src"/>
    <property name="classes.folder" value="bin"/>

</project>

但这没有帮助。

您知道如何在优胜美地的 Eclipse 中使用 java 5 构建项目吗?

EDIT:// 问题是 JDK 1.5 路径引用了 CurrentJDK,JDK 1.6 是什么。我再次运行 JDK 1.5 和 1.6 的安装,现在 JDK 1.5 与 JDK 1.5 链接

lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  9 apr 11:01 1.5 -> ./1.5.0_30
lrwxr-xr-x  1 root  wheel   10  9 apr 11:01 1.5.0 -> ./1.5.0_30
drwxr-xr-x  9 root  wheel  306  9 apr 11:01 1.5.0_30
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10  8 apr 14:36 1.6.0 -> CurrentJDK
drwxr-xr-x  7 root  wheel  238  8 apr 14:36 A
lrwxr-xr-x  1 root  wheel    1  8 apr 14:36 Current -> A

在项目属性中我没有收到任何编译器警告,但显然 JDK 1.5 没有 JRE 1.5,因为如果我打开 Eclipse 首选项 Java->Installed JREs->Execution Environments,则没有任何 JRE 1.5

我无法在 Java 5 中构建项目,因为我遇到了错误:

Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.

这是/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0_30目录的内容

我决定开新thread

【问题讨论】:

  • 我的理解是 Yosemite 上没有运行 Java 5,所以你总是会收到警告。
  • 我不明白。为什么你认为没有在 Yosemite 上运行的 Java 5?我安装了 /System/Library/Frameworks/JavaVM.framework/Versions 目录中的 java 5
  • 如果您将目标版本更新到 1.6 或 1.7,我见过的大多数旧程序仍然可以正常工作。这会给你带来什么样的问题?

标签: java eclipse macos ant osx-yosemite


【解决方案1】:

我通过在项目资源管理器中右键单击“Java 系统库”并选择“属性”来解决我的问题。在“执行环境”中选择了正确的Java版本。

【讨论】:

    【解决方案2】:

    eclipse: select your java version

    Dyadee 解决方案也适用于 Windows 10。

    检查你安装的java版本(windows运行CMD:java -version)

    右键单击:JRE 系统库并选择属性

    执行环境:这里选择你安装的版本——我的情况是:JavaSE-1.8 (jre1.8.0_144)

    【讨论】:

      最近更新 更多