基于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