【发布时间】:2024-01-10 11:33:01
【问题描述】:
我使用 OS X Yosemite (10.10.2) 并且有一些我想在 Eclipse 中构建的 java 项目。有些项目很旧,它们使用 Java 5、6 和 7。起初,我安装了 JDK 7 和 Eclipse Luna。然后我阅读了this 和this 线程如何在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 Path是J2SE-1.5,我尝试通过Alternate JRE更改执行环境 >
但是当我保存这个设置并再次打开它时J2SE-1.5仍然是执行环境(J2SE-1.5)
然后我尝试在build.xml中添加java source和target
<?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