Answers:
我不太确定,但是如果您安装普通的RPMS,则JAVA_HOME值也可以设置为此:
/usr/java/default/
编辑:我刚刚检查了我的家庭系统。我已经创建了这个文件:
/etc/profile.d/java.sh
其中包含:
export JAVA_HOME=/usr/java/default/
我正在使用Sun的正式版本:jdk-1.6.0_12-fcs
编辑:这是我在机器上设置Java的方式:
从Oracle下载并安装Java JDK
使用以下两个命令,确保使用此Java而不是OpenJDK版本:
alternatives --install /usr/bin/java java /usr/java/default/bin/java 999999 \
--slave /usr/bin/keytool keytool /usr/java/default/bin/keytool \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/default/bin/rmiregistry
alternatives --install /usr/bin/javac javac /usr/java/default/bin/javac 999999 \
--slave /usr/bin/jar jar /usr/java/default/bin/jar \
--slave /usr/bin/rmic rmic /usr/java/default/bin/rmic
确保所有用户的JAVA_HOME环境变量都设置为正确的值:
echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh
/usr/java/default
我的CentOS 6包装盒中没有安装OpenJDK 1.6和1.7的东西。
您想要将JAVA_HOME设置为JDK或JRE的根目录,例如:
export JAVA_HOME=/usr/java/jdk1.3
如果安装了JDK(开发套件),则ypu可能希望它指向该目录,否则请使用JRE路径(Java运行时环境)。然后,您可能希望将$ PATH环境变量设置为也包括bin目录:
export PATH=$PATH:/usr/java/jdk1.3/bin
如果使用的是tomcat,则可能还需要为tomcat用户设置CATALINA_HOME。
export CATALINA_HOME=/path/to/tomcat
要为系统设置此设置,您要编辑/ etc / profile或在/etc/profile.d文件夹中添加.sh文件。对于特定用户,您可以将其放在用户〜/ .profile或〜/ .bash_profile文件中。
下面的代码总是很适合我:
[user@base ~]$ locate bin/java
/usr/bin/java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/java/jdk1.6.0_31/bin/java
/usr/java/jdk1.6.0_31/bin/javac
/usr/java/jdk1.6.0_31/bin/javadoc
/usr/java/jdk1.6.0_31/bin/javah
/usr/java/jdk1.6.0_31/bin/javap
/usr/java/jdk1.6.0_31/bin/javaws
/usr/java/jdk1.6.0_31/jre/bin/java
/usr/java/jdk1.6.0_31/jre/bin/java_vm
/usr/java/jdk1.6.0_31/jre/bin/javaws
这意味着我可以将JAVA_HOME设置为/usr/java/jdk1.6.0_31
我考虑了以下问题:是否更改了与以下版本一起使用的Java版本:
alternatives --config java
然后,任何硬编码JAVA_HOME
都将发生变化(至少会在我目前盯着的Centos 6.6上发生)。也就是说,没有/usr/java
。
这似乎不是最好的方法(容易失败),但是在我花了10分钟的时间里,这似乎是最好的方法。
在/etc/bashrc
我将设置修改JAVA_HOME
为:
export JAVA_HOME=$(alternatives --display java | grep current | sed 's/link currently points to //' | sed 's|/bin/java||')
您必须在MacOSX上执行类似的操作,但不能全部执行,grep
然后sed
解析出结果。当然alternatives
可以提供类似的简便解决方案。
无论如何,我希望能有所帮助。
更新资料
不会的JRE_HOME
。JDK / SDK并不那么明显(我继续看)。
alternatives
默认情况下,似乎只与JRE有关。我服从@Niels的回答,或者只是安装Java yum
并将其设置为JAVA_HOME(窍门就是我找到的安装位置!)。
yum install java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm
我注意到java_1.8.0
是一个符号链接/etc/alternatives/java_sdk_1.8.0
,因此将$ JAVA_HOME设置为/usr/lib/jvm/java_1.8.0
。在/etc/bashrc
。
我发现包管理器可以在不同的地点放置,因此使用它(你将需要如果使用的是容器明确安装此)以下是有点不太脆
javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export JAVA_HOME=$javaHome
或对于JRE
javaExec=$(which java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome