Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSX 10.9.2上的Java 1.7作为1.5运行?_Java_Macos_Osx Mavericks - Fatal编程技术网

OSX 10.9.2上的Java 1.7作为1.5运行?

OSX 10.9.2上的Java 1.7作为1.5运行?,java,macos,osx-mavericks,Java,Macos,Osx Mavericks,这件事让我毛骨悚然java-version和javac-version都报告相同的1.7.0\u 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/Ho

这件事让我毛骨悚然
java-version
javac-version
都报告相同的1.7.0\u 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
当然没有安装JDK1.5。我甚至不认为有一个1.5JDK可以在OSX上运行了

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,我也会得到完全相同的行为

有人知道这是什么原因吗

好的,多亏了这篇文章(),我找到了解决方案:

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

哪个java
给了你什么?哪个java给了我与OSX上相同的东西,OSX是/System/Frameworks/java/中的存根可执行文件。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