我不太确定自己是如何陷入困境的,但是由于某种原因,我无法使用替代方法来更改Java的当前版本。我可以运行其他选项–config java并输入选择内容,但是当我回显java或javac的版本号时,它每次都会吐出1.5(尽管其他选项显示当前版本为1.6)。顺便说一下,我正在使用的服务器正在运行RHEL5。
我已验证替代方法中使用的路径指向正确的目录。这是我的会话的一些输出:
[brilewis @ myserver] $ sudo / usr / sbin / update-alternatives –config java 有3个程序提供“ java”。 选择命令 ** 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java + 2 /usr/java/jdk1.5.0_10/bin/java 3 /usr/java/jdk1.6.0_16/bin/java 输入以保留当前选择[+],或键入选择号:3 [brilewis @ myserver] $ java -version Java版本“ 1.5.0_10” Java™2 Runtime Environment,标准版(内部版本1.5.0_10-b03)Java HotSpot(TM)服务器VM(内部版本1.5.0_10-b03,混合模式) [brilewis @ myserver] $ sudo / usr / sbin / update-alternatives –config java 有3个程序提供“ java”。 选择命令 ** 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java 2 /usr/java/jdk1.5.0_10/bin/java + 3 /usr/java/jdk1.6.0_16/bin/java 输入以保留当前选择[+],或键入选择号:
[brilewis @ myserver] $ sudo / usr / sbin / update-alternatives –config java
有3个程序提供“ java”。
** 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java + 2 /usr/java/jdk1.5.0_10/bin/java 3 /usr/java/jdk1.6.0_16/bin/java
输入以保留当前选择[+],或键入选择号:3
[brilewis @ myserver] $ java -version
Java版本“ 1.5.0_10” Java™2 Runtime Environment,标准版(内部版本1.5.0_10-b03)Java HotSpot(TM)服务器VM(内部版本1.5.0_10-b03,混合模式)
** 1 /usr/lib/jvm/jre-1.4.2-gcj/bin/java 2 /usr/java/jdk1.5.0_10/bin/java + 3 /usr/java/jdk1.6.0_16/bin/java
输入以保留当前选择[+],或键入选择号:
更新:以下是输出echo $PATH:
echo $PATH
/usr/java/jdk1.5.0_10/bin:/usr/local/apache-ant-1.7.1/bin:/usr/local/apache- tomcat-6.0.24:/usr/kerberos/bin:/usr/本地/ bin:/ bin:/ usr / bin:/ usr / NX / bin:/ home / brilewis / bin
更新(4/26/10):我遵循了Bert的建议,并从/ etc / profile中的PATH环境var中删除了JAVA_HOME。完成此操作后,我可以使用替代方法来更改Java版本。唯一的问题是,当我尝试运行时javac,出现“ -bash:javac:命令未找到”。当版本设置为1.5时不会发生这种情况。
javac
我能够解决问题的唯一方法是通过删除/ var / lib / alternatives / java并重新安装每个JDK来重新开始。我为javac和jar做过同样的事情。完成此操作后,我可以在各个版本之间切换而没有任何问题。