JAVA_HOME对CentOS有什么价值?

我已经在CentOS上通过yum安装了java,但另一个java程序需要知道JAVA_HOME环境variables是什么。 我知道所有关于设置环境variables,但我该怎么设置? java安装在/usr/bin/java ,它不能在那里!

其实我find了,

它是/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/ 。 我发现它是什么做update-alternatives --display java ,它显示了目录/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

我不太清楚,但是如果你安装了正常的RPMS,那么JAVA_HOME的值也可以设置为:

 /usr/java/default/ 

编辑:我刚刚检查我的家庭系统。 我创build了这个文件:

 /etc/profile.d/java.sh 

包含:

 export JAVA_HOME=/usr/java/default/ 

我使用的是Sun的正式版本:jdk-1.6.0_12-fcs

编辑:这是我如何在我的机器上设置Java :

安装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

确保所有用户的JAVA_HOME环境variables设置为正确的值:

 echo "export JAVA_HOME=/usr/java/default/" > /etc/profile.d/java_home.sh 

您要将JAVA_HOME设置为JDK或JRE的根位置,例如:

 export JAVA_HOME=/usr/java/jdk1.3 

如果安装了JDK(开发工具包),ypu可能希望它指向那个,否则使用JREpath(Java运行时环境)。 然后,你可能想要设置你的$ PATH环境variables来包含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文件。 对于一个特定的用户,你可以把它放在users〜/ .profile或〜/ .bash_profile文件中。

下面总是工作forms完美:

 [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

这很奇怪,有一个JAVE_HOME环境variables的全部点是,所以你不必指定每个程序的path,它可以通过查找这个variables得到这个path。

无论哪种方式,findJAVA_HOME环境variables的正确方法是使用echo:

 [root@host ~]# echo $JAVA_HOME /usr/java/j2sdk1.4.2_09 

运行此命令将显示path,无论您正在运行的版本,从命令行。

我考虑过是否改变了Java的版本的问题:

 alternatives --config java 

然后,任何硬编码的JAVA_HOME将会改变(至less在我目前正在看的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上做类似的事情,但是没有所有的grepsed来parsing结果。 当然, alternatives提供了一个类似的简单解

无论如何,我希望我帮助。


更新

没有,这将是JRE_HOME 。 JDK / SDK不是很明显(我会继续寻找)。

alternatives似乎只是关于默认的JRE。 我遵循@Niels的答案,或者只是用yum安装Java,并将JAVA_HOME设置为(这个技巧就是我在哪里find安装的地方!)。

 yum install java-1.8.0-openjdk-devel.x86_64 cd /usr/lib/jvm 

我注意到java_1.8.0java_1.8.0的一个符号链接,因此将我的$ JAVA_HOME设置为/usr/lib/jvm/java_1.8.0 。 在/etc/bashrc