Javac版本不会更新

时间:2015-04-09 09:47:00

标签: java macos javac

我正在尝试使用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版本。

4 个答案:

答案 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

或查看此页面:Set environment variables on Mac OS X Lion

答案 3 :(得分:0)

执行以下步骤

  • 在Windows搜索栏中,键入&#34; environment&#34;。
  • 在您的环境变量(帐户)中,创建一个名为JAVA_HOME的变量。将其设置为C:\ Program Files \ Java \ jdk1.8.0_65(或JDK所在的位置)。

  • 在系统环境变量中,编辑PATH。把它放在PATH值的开头:%JAVA_HOME%\ bin;

  • 按OK。

  • 退出您所在的所有命令窗口。
  • 启动命令窗口。输入javac -version。 你应该得到这样的答复:javac 1.8.0_65