如何在 Mac OS X 10.7.5 上恢复到 Java 1.6

2022-09-01 18:09:04

我有1.6安装程序。我已经用过了。它不会更改我的Java安装,也不会说有旧版本,但它确实完成了安装。

我一直在使用符号链接,但无论我做什么,运行

java -version

在终端中始终导致

Daves-MacBook-Pro:core-server dave$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

我的应用程序与GAE一起使用,GAE根本不使用Java 1.7。因此,我无法使用1.7编译我的代码!我必须使用1.6,但我未能找到一种方法来删除1.7或以其他方式强制在1.6上进行构建/编译。

最后要注意的是,我正在命令行上运行一个构建工具,因此在Eclipse中更改项目的设置似乎无济于事。


答案 1

、 等命令行工具对环境变量的值很敏感,如果此变量指向 1.6 JDK,则将使用 1.6。该工具是您在这里的朋友。运行javajavacJAVA_HOME/usr/libexec/java_home

/usr/libexec/java_home

将为系统上最新的 JDK 打印出适当的值。这将是Java 7,但您可以使用标志应用约束,例如JAVA_HOME-v

/usr/libexec/java_home -v '1.6*'

将返回系统上最佳可用 1.6 JDK 的值。您可以使用此值设置:JAVA_HOMEJAVA_HOME

export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`

作为特定终端会话的一次性服务,或者通过将上述行添加到主目录中的文件来永久用于所有将来的终端会话。.bash_profile


$ export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`
$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
$ export JAVA_HOME=`/usr/libexec/java_home -v '1.7*'`

$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

答案 2

如果您需要编写要在以前版本的Java上运行的代码,则可以更改编译标志。这可能就是您所需要的一切,并且

例如。

javac -source 1.6 -target 1.6 MyClass.java

source arg 指出源代码是用该版本的 Java 编写的,因此会是编译错误。Target 告诉编译器编译针对指定版本的 JVM 的字节代码。虽然我认为1.7与1.5和1.6完全向后兼容。List<String> strings = new ArrayList<>();