系统相关
首页 > 系统相关> > 基于Linux OpenJDK Debian的发行版的JAVA_HOME环境变量的正确目标是什么?

基于Linux OpenJDK Debian的发行版的JAVA_HOME环境变量的正确目标是什么?

作者:互联网

Windows中,JAVA_HOME必须指向JDK安装文件夹(以便JAVA_HOME / bin包含所有可执行文件,JAVA_HOME / libs包含所有默认jar库).

如果我下载Sun的JDK软件包并在Linux中安装它,则程序相同.

但是,我需要使用Kubuntu的默认OpenJDK包.问题是所有可执行文件都放在/usr/bin中.但是罐子放在/usr/share / java中.由于它们不在同一个JAVA_HOME文件夹下,我遇到了Grails的问题,并且可能会遇到其他需要标准Java结构的应用程序.

>如果我使用:

JAVA_HOME=/usr

想要使用任何Java可执行文件的所有应用程序和脚本都可以使用标准过程调用$JAVA_HOME / bin / executable.但是,由于罐子位于不同的地方,因此并不总是找到它们(例如:在grails中我得到了Native2ascii的ClassDefNotFound).
>另一方面,如果我使用:

JAVA_HOME=/usr/share/java

没有Java可执行文件(java,javac等)可以找到.

那么,在基于Debian的Linux中处理JAVA_HOME变量的正确方法是什么?

谢谢你的帮助,
路易斯

解决方法:

最终对我有用的东西(Grails现在运作顺利)就像史蒂夫B.指出的那样:

JAVA_HOME=/usr/lib/jvm/default-java

这样,如果用户更改系统的默认JDK,JAVA_HOME仍然有效.

default-java是当前JVM的符号链接.

标签:java-home,debian-based,java,grails
来源: https://codeday.me/bug/20190928/1826655.html