我在Unix服务器上有一个帐户。当我在BASH时,我无法让它指向我想要的Java版本。
Unix的版本是:
SunOS 5.10 Generic January 2005
这就是我的个人资料:
#====================================================================
# set the environment
#====================================================================
ANT_HOME=/apps1/apache-ant-1.8.4
export ANT_HOME
# $PATH:/user1/acme21 needs to be included to make anything work
PATH=.:/usr/jdk/instances/jdk1.6.0_24:$ANT_HOME/bin:$PATH:/user1/acme21
export PATH
JAVA_HOME=/usr/jdk/instances/jdk1.6.0_24
export JAVA_HOME
CLASSPATH=.:/user1/sterus01/TestProgramsLib/mail.jar:/user1/sterus01/TestProgramsLib/activation.jar:/user1/sterus01/TestProgramsLib/log4j-1.2.16.jar:/user1/sterus01/TestProgramsLib/mail.jar:ojdbc14.jar
export CLASSPATH
env | grep DIS
# Use the bash shell, get many conveniences
bash
当我运行echo$JAVA_HOME和echo$PATH时,我得到
bash-3.00$ echo $JAVA_HOME
/usr/jdk/instances/jdk1.6.0_24
bash-3.00$
和
bash-3.00$ echo $PATH
.:/usr/jdk/instances/jdk1.6.0_24:/apps1/apache-ant-1.8.4/bin:/usr/bin:/usr/local/bin:/usr/ccs/bin:/usr/bin:/usr/sbin:/etc:/usr/ucb:/usr/local/sudo:/usr/local/sbin:/user1/acme21
bash-3.00$
然而"哪个javac"揭示了:
bash-3.00$ which javac
/usr/bin/javac
bash-3.00$
以及"哪个java"揭示:
bash-3.00$ which java
/usr/bin/java
bash-3.00$
我能做些什么让它指向我在.profile文件中指定的Java版本吗?
提前感谢节日快乐Steve
您确定您的java
和javac
可执行文件在/usr/jdk/instances/jdk1.6.0_24
中吗?也许他们在/usr/jdk/instances/jdk1.6.0_24/bin/
。
我怀疑这是:
PATH=.:/usr/jdk/instances/jdk1.6.0_24
是不对的,你需要
PATH=.:/usr/jdk/instances/jdk1.6.0_24/bin
在Java安装的中选择二进制目录。
p.s.我不会把当前目录(.(放在你的PATH
中。否则,有人可以在目录中替换类似特洛伊木马的程序(例如ls
的替代程序(。当你cd到包含目录并键入ls
时,你会发现这一点(Unix Power Tools一书中有一个有趣的故事与此有关(