问题
在Windows中,JAVA_HOME必须指向JDK安装文件夹(因此JAVA_HOME/bin包含所有可执行文件,而38664647包含所有defaultjarlibraries)。
如果我下载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变量的正确方法是什么?
谢谢你的帮助,路易斯
#1 热门回答(86 赞)
最终对我有用的东西(Grails现在运作顺利)就像史蒂夫B.指出的那样:
JAVA_HOME=/usr/lib/jvm/default-java
这样,如果用户更改系统的默认JDK,则JAVA_HOME仍然有效。
default-java是当前