Java家在Ubuntu的etc/enviroment中

kev*_*vin 3 java ubuntu ubuntu-server ubuntu-12.04

不能设置JAVA_HOME/etc/enviromentJAVA_HOME="/home/syncsys/bin/jdk1.7.0_10/"

命令echo $JAVA_HOME给了我,/home/syncsys/bin/jdk1.7.0_10/但它不是一个正确的Java HOME或我需要别的东西?

我不想要bashrc或个人资料(一些问题).只有/etc/enviroment一种方法可以消除/etc/enviroment更新后重新启动的需要.

我的/ etc/envirment:

JAVA_HOME="/home/syncsys/bin/jdk1.7.0_10"
PATH=$JAVA_HOME:$PATH
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Run Code Online (Sandbox Code Playgroud)

一些要测试的命令:

syncsys@sync-pc:~$ JAVA_HOME=/home/syncsys/bin/jdk1.7.0_10
syncsys@sync-pc:~$ export JAVA_HOME
syncsys@sync-pc:~$ PATH=$JAVA_HOME:$PATH
syncsys@sync-pc:~$ export PATH
syncsys@sync-pc:~$ java -version
The program 'java' can be found in the following packages:
 * default-jre
 * gcj-4.6-jre-headless
 * gcj-4.7-jre-headless
 * openjdk-7-jre-headless
 * openjdk-6-jre-headless
Run Code Online (Sandbox Code Playgroud)

更新:

$ cat /etc/environment 
JAVA_HOME="/home/syncsys/bin/jdk1.7.0_10"
PATH="$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
syncsys@sync-pc:~$ java -version
The program 'java' can be found in the following packages:
Run Code Online (Sandbox Code Playgroud)

--------(已解决)--------工作样本现在对我来说没问题.

 $ cat /etc/environment JAVA_HOME="/home/syncsys/bin/jdk1.7.0_10" PATH="/home/syncsys/bin/jdk1.7.0_10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin??:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" 
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多教程和类似的论坛帖子,但它没有用.

Ken*_*ent 5

啊哈!我看到了问题......

你的JAVA_HOME是正确的(如果路径指向你的JDK,我希望如此).问题是你应该改变

PATH=$JAVA_HOME:$PATH
Run Code Online (Sandbox Code Playgroud)

PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

因为可执行文件"java"不在你的JAVA_HOME中,所以它位于JAVA_HOME/bin中