Java 1.7 在 OSX 10.9.2 上运行时被识别为 1.5?

15 浏览
0 Comments

Java 1.7 在 OSX 10.9.2 上运行时被识别为 1.5?

对这个问题烦得要命。`java -version`和`javac -version`都报告了相同的1.7.0_45版本,但是当我尝试编译最简单的类时,却出现了一个类文件错误:\n

> cat A.java
public class A {}
> javac A.java
A.java:1: 无法访问java.lang.Object
bad class file: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class)
class file has wrong version 51.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
public class A {}
       ^
1 error

\n肯定没有安装JDK 1.5。我认为在OSX上已经没有可以运行的1.5 JDK了。\n另外,这是包含“versions”和存根可执行文件的框架目录:\n

> ls -al /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x  11 root  wheel  374 28 Mar 09:03 .
drwxr-xr-x  12 root  wheel  408 11 Mar 07:52 ..
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.4 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.4.2 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.5 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.5.0 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.6 -> CurrentJDK
lrwxr-xr-x   1 root  wheel   10 29 Oct 12:54 1.6.0 -> CurrentJDK
drwxr-xr-x   8 root  wheel  272 28 Mar 09:03 A
lrwxr-xr-x   1 root  wheel    1 29 Oct 12:54 Current -> A
lrwxr-xr-x   1 root  wheel    1 28 Mar 09:03 CurrentJDK -> A

\n我已经检查了常见的问题,没有设置JAVA_HOME或CLASSPATH环境变量,尽管没有安装1.5也不重要。如果安装JDK 8,我也会得到完全相同的行为。\n有人知道是什么原因引起的吗?

0
0 Comments

Java 1.7 on OSX 10.9.2 running as 1.5?

最近我在我的Mac上遇到了一个问题,我想在我运行的操作系统(OSX 10.9.2)上使用Java 1.7,但是却发现它似乎以1.5的版本运行。我在网上搜索了一些解决方案,最终在一个帖子(Java compilation error: Mac)中找到了解决方法。

在这个帖子中,有人遇到了和我类似的问题,并提供了一个解决方案。解决方案是通过命令行删除一些Java扩展文件。具体的命令如下:

rm -rf ~/Library/Java/Extensions
sudo rm -rf /Library/Java/Extensions

通过执行以上命令,我成功地解决了问题。现在我可以在我的Mac上使用Java 1.7了。这个解决方案非常简单,但却非常有效。

这个问题的原因可能是因为在我的Mac上安装了多个版本的Java,导致了版本冲突。删除这些扩展文件可以解决这个问题,因为这些文件可能包含了旧版本的Java扩展。

通过在命令行中删除Java扩展文件,我成功地解决了在我的Mac上使用Java 1.7时出现的问题。这个解决方案非常简单,任何人都可以轻松地执行。如果你也遇到了类似的问题,我建议你尝试一下这个解决方案。

0