我已经在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 :
从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环境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上做类似的事情,但是没有所有的grep
和sed
来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.0
是java_1.8.0
的一个符号链接,因此将我的$ JAVA_HOME设置为/usr/lib/jvm/java_1.8.0
。 在/etc/bashrc
。