好吧,我对Mac和OSX有点陌生,但我买了一个,这样我就可以用它来解决我的Java程序中的一些问题,因为我工作的公司使用的是OSX和Windows机器的组合。我遇到的问题是,当我从甲骨文的网站安装Java7时,它会更新首选项菜单,双击.jar文件时似乎可以正确执行它们,但终端窗口的版本仍然是1.6.0_43,从终端运行相同的.jar文件会导致运行时错误,因为版本较旧。
当我导航到/Library/Java/JavaVirtualMachines/时,我看到一个空文件夹。根据我在其他文章中看到的,这是Java 1.7.0的版本文件夹应该在的位置。知道是怎么回事吗?如何让终端使用正确的Java版本?
编辑:@DWilches对他原始答案的评论:(1)
total 64
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 17 21:38 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Mar 17 21:38 A
lrwxr-xr-x 1 root wheel 1 Mar 17 21:38 Current -> A
lrwxr-xr-x 1 root wheel 59 Mar 17 21:38 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
(2)
ls -ld /usr/bin/java
lrwxr-xr-x 1 root wheel 74 Mar 17 21:38 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
编辑:很抱歉给出了新的答案,太习惯了网站在这么长时间后阻止对原始帖子的编辑……
发布于 2013-03-26 05:13:36
首先,您是否退出控制台并再次打开它,以便它有机会接受PATH变量中的更改?
如果您已经这样做了,那么检查您的Java的默认版本是:
dwilches@ ~$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
dwilches@ Versions$ ls -l
lrwxr-xr-x 1 root wheel 59 Mar 19 10:07 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Mar 19 10:07 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 1 Mar 19 10:08 Current -> A
drwxr-xr-x 8 root wheel 272 Mar 25 10:03 A
现在,您可以看到“当前”版本是"A“(这是我的Java7)。如果我想将其更改为Java 1.6,那么我可以这样写:
dwilches@ Versions$ sudo unlink Current
dwilches@ Versions$ sudo ln -s 1.6 Current
然后:
dwilches@ Versions$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01-447-11M4203)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01-447, mixed mode)
因此您可以使用它来使“当前”指向您想要的Java位置。
发布于 2013-11-10 06:56:02
正如伊恩所说,但您可能希望从.sh脚本调用java7,因此您需要在.bash_profile中添加一个函数而不是别名:
java7() {
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java "$@"
}
export -f java7
https://stackoverflow.com/questions/15624667
复制相似问题