在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
Run Code Online (Sandbox Code Playgroud)
所有想要使用任何Java可执行文件的应用程序和脚本都可以使用标准过程call $JAVA_HOME/bin/executable.然而,由于罐子在不同的地方,它们并不总是被发现(例如:我正在ClassDefNotFound寻找的grails native2ascii).
另一方面,如果我使用:
JAVA_HOME=/usr/share/java
Run Code Online (Sandbox Code Playgroud)
在Java可执行文件(没有java,javac等等)都可以找到.
那么,JAVA_HOME在基于Debian的Linux 中处理变量的正确方法是什么?
谢谢你的帮助,路易斯