JAVA_HOME 在 Ubuntu 上的定义不正确?
JAVA_HOME is not defined correctly on Ubuntu?
我正在尝试在 Ubuntu 14.04 中安装一些软件 (Shibboleth)。我已经在 /usr/lib/jvm/
中安装了 Java 7 OpenJDK,并且我在 /usr/environment
中有这些行
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
export JAVA_HOME
如果我输入 echo $JAVA_HOME
,我会正确地得到 /usr/lib/jvm/java-7-openjdk-amd64
。
但是,当我尝试安装 Shibboleth 时,我总是得到 Error: JAVA_HOME is not defined correctly. Cannot execute java
.
有趣的是,如果我输入 java
命令,它会起作用(它指的是 /usr/lib/java,这是右边的 link)。但是,当我尝试 运行 bash bin/install.sh
of Shibboleth 时,出现 JAVA_HOME 错误
我已经尝试将 JAVA_HOME
设置为 jre
文件夹,结果相同。有什么想法吗?
您应该设置找到 java、javac 文件的 bin 文件夹的路径。
在你的情况下它可能是 /usr/lib/jvm/java-7-openjdk-amd64/bin
将 JAVA_HOME
和 PATH
添加到您的 ~/.profile
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
然后,将以下内容添加到您的 /etc/profile.d/java.sh
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JAVA_HOME
PATH=${JAVA_HOME}/bin:${PATH}
export PATH
JRE_HOME=/usr/lib/jvm/jre
export JRE_HOME
JAVA_OPTS="-XX:+AggressiveOpts -Xms256m -Xmx512m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
export JAVA_OPTS
有关详细信息,请参阅 Documentation
希望对您有所帮助。
根据您的编辑。
sudo vim /etc/profile
在文件末尾添加这两行
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export PATH=JAVA_HOME/bin:$PATH
然后
source /etc/profile
勾选
mvn -version
我的问题是您 运行 的 install.sh 脚本 java 路径错误。
使用 nano 编辑文件
sudo nano idp-install.sh
或vim编辑器
vim idp-install.sh
并更改对应于 java 路径的行并添加正确的 java 路径。这将解决您的问题。
P.S。此解决方案特定于 Shibboleth 安装的 java 路径。
而不是
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
我做到了
EXPORT JAVA_HOME='/usr/lib/jvm/java-1.7.0-openjdk-amd64'
有效。
从 Ubuntu 终端执行:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
测试maven 运行:
mvn --version
它将给出输出:
Maven home: /usr/share/maven
Java version: 1.7.x.xxx, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-47-generic", arch: "amd64", family: "unix"
对于未来的参与者,请注意这个问题通常会发生,因为 Java
在您的环境中没有正确设置。采取以下步骤解决问题
首先,使用以下命令检查 JDK
所在的位置
cd /usr/lib/jvm/{jdk-version}
现在你有了 JDK
所在的完整路径,像这样复制整个路径,在我的例子中我有 jdk1.8.0_261
所以你复制/usr/lib/jvm/jdk1.8.0_261
路径,打开/etc/environment
并正确设置JDK路径如下
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:usr/lib/jvm/jdk1.8.0_261:/opt/apache-maven-3.6>
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261
M2_HOME="/opt/apache-maven-3.6.3"
请注意,我已将 /usr/lib/jvm/jdk1.8.0_261
添加到 PATH
变量以及 JAVA_HOME
变量,
这应该可以解决错误 Error: JAVA_HOME is not defined correctly. Cannot execute java
,因为 JDK
现在已在 PATH
和 JAVA_HOME
中正确设置,那么对于 Shibboleth,您现在也可以像这样定义它的安装路径(这是一个例子-不知道如何设置 Shibboleth)
SHIBBOLETH_HOME="/opt/shibboleth-{version}"
我正在尝试在 Ubuntu 14.04 中安装一些软件 (Shibboleth)。我已经在 /usr/lib/jvm/
中安装了 Java 7 OpenJDK,并且我在 /usr/environment
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
export JAVA_HOME
如果我输入 echo $JAVA_HOME
,我会正确地得到 /usr/lib/jvm/java-7-openjdk-amd64
。
但是,当我尝试安装 Shibboleth 时,我总是得到 Error: JAVA_HOME is not defined correctly. Cannot execute java
.
有趣的是,如果我输入 java
命令,它会起作用(它指的是 /usr/lib/java,这是右边的 link)。但是,当我尝试 运行 bash bin/install.sh
of Shibboleth 时,出现 JAVA_HOME 错误
我已经尝试将 JAVA_HOME
设置为 jre
文件夹,结果相同。有什么想法吗?
您应该设置找到 java、javac 文件的 bin 文件夹的路径。 在你的情况下它可能是 /usr/lib/jvm/java-7-openjdk-amd64/bin
将 JAVA_HOME
和 PATH
添加到您的 ~/.profile
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
然后,将以下内容添加到您的 /etc/profile.d/java.sh
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JAVA_HOME
PATH=${JAVA_HOME}/bin:${PATH}
export PATH
JRE_HOME=/usr/lib/jvm/jre
export JRE_HOME
JAVA_OPTS="-XX:+AggressiveOpts -Xms256m -Xmx512m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
export JAVA_OPTS
有关详细信息,请参阅 Documentation
希望对您有所帮助。
根据您的编辑。
sudo vim /etc/profile
在文件末尾添加这两行
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export PATH=JAVA_HOME/bin:$PATH
然后
source /etc/profile
勾选
mvn -version
我的问题是您 运行 的 install.sh 脚本 java 路径错误。
使用 nano 编辑文件
sudo nano idp-install.sh
或vim编辑器
vim idp-install.sh
并更改对应于 java 路径的行并添加正确的 java 路径。这将解决您的问题。
P.S。此解决方案特定于 Shibboleth 安装的 java 路径。
而不是
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
我做到了
EXPORT JAVA_HOME='/usr/lib/jvm/java-1.7.0-openjdk-amd64'
有效。
从 Ubuntu 终端执行:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
测试maven 运行:
mvn --version
它将给出输出:
Maven home: /usr/share/maven
Java version: 1.7.x.xxx, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-47-generic", arch: "amd64", family: "unix"
对于未来的参与者,请注意这个问题通常会发生,因为 Java
在您的环境中没有正确设置。采取以下步骤解决问题
首先,使用以下命令检查 JDK
所在的位置
cd /usr/lib/jvm/{jdk-version}
现在你有了 JDK
所在的完整路径,像这样复制整个路径,在我的例子中我有 jdk1.8.0_261
所以你复制/usr/lib/jvm/jdk1.8.0_261
路径,打开/etc/environment
并正确设置JDK路径如下
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:usr/lib/jvm/jdk1.8.0_261:/opt/apache-maven-3.6>
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_261
M2_HOME="/opt/apache-maven-3.6.3"
请注意,我已将 /usr/lib/jvm/jdk1.8.0_261
添加到 PATH
变量以及 JAVA_HOME
变量,
这应该可以解决错误 Error: JAVA_HOME is not defined correctly. Cannot execute java
,因为 JDK
现在已在 PATH
和 JAVA_HOME
中正确设置,那么对于 Shibboleth,您现在也可以像这样定义它的安装路径(这是一个例子-不知道如何设置 Shibboleth)
SHIBBOLETH_HOME="/opt/shibboleth-{version}"