在 Windows 中,JAVA_HOME必须指向 JDK 安装文件夹(以便 JAVA_HOME/bin包含所有可执行文件,而 JAVA_HOME/libs包含所有默认的 jar库)。
如果我下载 Sun 的 JDK bundle 并将其安装在 Linux 中,那么过程是相同的。
但是,我需要使用 Kubuntu 的默认 OpenJDK 包。问题是所有可执行文件都放在 /usr/bin中。但是罐子放在 /usr/share/java。因为它们不在同一个 JAVA_HOME文件夹下,所以我在 Grails 方面遇到了麻烦,也许在其他需要标准 Java 结构的应用程序方面也会遇到麻烦。
如果我使用:
JAVA_HOME=/usr
所有希望使用任何 Java 可执行文件的应用程序和脚本都可以使用标准过程 call $JAVA_HOME/bin/executable。然而,由于罐子在不同的地方,它们并不总是被发现(例如: 在 grails 中,我得到 ClassDefNotFound的 native2ascii)。
另一方面,如果我使用:
JAVA_HOME=/usr/share/java
找不到任何 Java 可执行文件(java、 javac等)。
那么,在基于 Debian 的 Linux 中处理 JAVA_HOME变量的正确方法是什么呢?
谢谢你的帮助, 路易斯