我正在尝试使用1.8作为目标版本在我的mac上编译jar,但javac失败并显示“无效目标版本”消息。
当我运行javac -version
时,它给了我“javac 1.6.0_29”。
我在“/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk”下安装了1.8 jdk,但即使我运行/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/javac -version
,它也会给我“javac 1.6.0_29”。
Sym将“/System/Library/Frameworks/JavaVM.framework/Versions/”中的CurrentJDK文件夹链接到库中的jdk文件夹并没有改变任何内容。 sym没有将/ usr / bin中的javac链接到我的jdk文件夹中的javac。
如何让javac使用我的1.8版本?
非常感谢!
更新
我的路径变量输出以下内容:
echo $PATH
在/ usr / local / bin目录:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:在/ usr / local / bin目录:在/ usr /本地/ MySQL的/斌:/选择/ X11 / bin中:在/ usr /本地/ GIT中/ bin中:/开发人员/工具/ Panda3D的
echo $JAVA_HOME
(因为我已经设置它以便让javac工作)
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home /
预付/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/到$ PATH变量也没有改变javac -version的输出。
更新2
其他问题:javac做什么?它是直接执行代码还是依赖于系统中的其他二进制文件?如果是这样,他们的链接可能会被打破。否则我想知道为什么在1.8 jdk文件夹中执行二进制文件会给我1.6版本。
答案 0 :(得分:3)
配置/usr/bin/javac
指向哪个javac的正确Debian / Ubuntu方法是使用update-alternatives
命令。您可以以交互方式执行此操作,并从可用选项列表中进行选择:
sudo update-alternatives --config javac
和java:
sudo update-alternatives --config java
答案 1 :(得分:0)
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK 链接在哪里引用?
确保它引用正确的JDK
<强> /库/爪哇/ JavaVirtualMachines / JDK {主要}。{次要}。{宏[_Update]}。JDK 强>
答案 2 :(得分:0)
请检查JAVA_HOME和PATH环境变量是否指向1.8文件夹并且没有指向1.6 java文件夹的链接,尤其是PATH。
检查:
echo%PATH%
集:
导出PATH =&#34; java8文件夹&#34;:$ PATH
答案 3 :(得分:0)
在您的环境变量(帐户)中,创建一个名为JAVA_HOME的变量。将其设置为C:\ Program Files \ Java \ jdk1.8.0_65(或JDK所在的位置)。
在系统环境变量中,编辑PATH。把它放在PATH值的开头:%JAVA_HOME%\ bin;
按OK。