4

我正在尝试设置 JAVA_HOME 以使 tomcat 7 无法成功工作。

我正在使用 CentOS 6.3。这是我到目前为止所做的:

哪个 java /usr/bin/java

所以我编辑了.bash_profile,我添加了

导出 JAVA_HOME=/usr/bin/java

没用。我在网上搜索并在stackoverflow上找到了另一个用户,他在/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java中找到了它

我在我的电脑上搜索,发现java位于/usr/lib/jvm/jre-1.6.0-openjdk/bin

然后我将 JAVA_HOME 更改为 export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk/bin ,尝试启动tomcat但找不到服务器。

如何找到java的安装位置?我不是自己安装的;它是在 linux 安装期间安装的。

在此先感谢,迈克

4

3 回答 3

10

export JAVA_HOME=/usr应该这样做。脚本运行$JAVA_HOME/bin/java

于 2012-12-15T02:08:49.293 回答
3

严格正确的答案是这样的:

export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk

问题在于,在典型的 Linux 系统上,您通过java命令创建/管理的符号链接访问命令(等)alternatives。这允许您在系统范围内选择默认使用哪些 java 安装;即通过/usr/bin.

第二个问题是 JAVA_HOME 环境变量应该指向 Java 安装目录。“bin”目录是安装目录的子目录。(看“/usr/lib/jvm/jre-1.6.0-openjdk”的内容!!)

虽然export JAVA_HOME=/usr/bin可以用于定位命令,但如果 Java 应用程序需要在安装中查找其他文件,它将无法工作;例如“rt.jar”文件。

这种“细微差别”对于 Tomcat 可能无关紧要,但对于使用 JAVA_HOME 约定的其他 Java 软件可能很重要。


脚注:如果您使用 Oracle Java for Linux 安装,默认安装目录将是子目录“/usr/java”。遗憾的是,Oracle 安装程序不理解 Linux“替代”系统。您要么必须手动注册每个 Java 命令的替代项(繁琐!!),要么将安装的“bin”目录添加到 PATH。

于 2012-12-15T02:55:01.717 回答
0

/usr/bin 包含你所有的二进制文件;您的实际 JRE 或 JVM 可能安装在其他地方,因此您可以在 /usr/bin 运行一个简单的命令来获取 java 的实际位置。

ls -lrt

二进制文件可能看起来像(软链接):

java -> /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/java

好的; 现在我们知道 java 安装在哪里,我们现在可以将 JAVA_HOME 导出到 bin 上方的一个文件夹,即 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/。

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
于 2021-11-16T12:22:39.137 回答