【问题标题】:Java 1.7 on OSX 10.9.2 running as 1.5?OSX 10.9.2 上的 Java 1.7 作为 1.5 运行?
【发布时间】:2014-05-07 04:58:37
【问题描述】:

关于这个,我的头发都被拉出来了。 java -versionjavac -version 都报告相同的 1.7.0_45,但是当我尝试编译最简单的类时,我得到一个类文件错误:

> cat A.java
public class A {}

> javac A.java
A.java:1: cannot access 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

当然没有安装 JDK 1.5。我认为甚至 不再有在 OSX 上运行的 1.5 JDK。

FWIW,这是包含“版本”和存根可执行文件的框架目录:

> 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

我已经检查了通常的嫌疑人,没有 JAVA_HOME 或 CLASSPATH 环境变量,这在没有安装 1.5 时并不重要。如果我安装 JDK 8,我也会得到完全相同的行为。

有人知道是什么原因造成的吗?

【问题讨论】:

  • which java 带给你什么?
  • 哪个 java 给了我和它在 OSX 上一样的东西,即 /System/Frameworks/Java/whatever 中的存根可执行文件。 Dtrace 还告诉我它最终会在 jdk 安装中分叉正确的可执行文件
  • 你在什么IDE或命令行上执行JVM
  • 从命令行运行。尝试从 Idea 编译时,我也会遇到内部 javac 错误。
  • /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home 的输出呢?我同意 javac 似乎是 1.5 非常奇怪,尽管我在这里安装了 1.5 版本:/System/Library/Frameworks/JavaVM.framework/Versions

标签: java macos osx-mavericks


【解决方案1】:

好的,感谢这篇文章 (Java compilation error: Mac) 我找到了解决方案:

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

【讨论】:

    猜你喜欢
    • 2011-12-01
    • 2015-01-14
    • 1970-01-01
    • 2014-04-18
    • 2014-05-12
    • 1970-01-01
    • 2013-08-25
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多