我在Eclipse上运行1.7 JDK时出现了编译问题:
类文件有错误的版本51.0,应该是49.0
所以,因为这看起来像一个javac版本问题我删除了所有java版本.安装了1.7_51,安装了Apple提供的1.6版本,以便Eclipse运行,更改了sym链接,因此1.7是默认值.和以前一样的问题,同样的项目不会编译,尽管其他人做了,
下一步,将问题解决为裸骨,即从等式中删除ant等 - 使用的Test.java文件没有方法,只有System.out.println()的main.cd到包含源文件的目录并运行编译器指定javac的完整路径,检查未设置JAVA_HOME:
$ /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/javac Test.java -verbose -extdirs.-endorseddirs.-cp.-bootclasspath /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar -version
输出:
javac 1.7.0_51
[解析开始Test.java]
[解析完成67ms]
[源文件的搜索路径:[.]]
[类文件的搜索路径:[/ Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar,.]]
[loading /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class)]
Test.java:11:无法访问java.lang.Object坏类文件:/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class )
类文件有错误的版本51.0,应该是49.0
请删除或确保它出现在类路径的正确子目录中.公共课测试{^
[总共336ms] 1错误
Flumoxed.
有任何想法吗 ?
在相关的说明中,我似乎无法让javac接受1.5/5以上的-target选项:
$ /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/javac Test.java -verbose -extdirs.-endorseddirs.-cp.-bootclasspath /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/rt.jar -version -target 1.7
结果是:
javac 1.7.0_51
javac:无效的目标版本:1.7