在 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
变量的正确方法是什么呢?
谢谢你的帮助, 路易斯