JAVA_HOME在Ubuntu上定义不正确?

63lcw9qa  于 2023-05-05  发布在  Java
关注(0)|答案(8)|浏览(205)

我正在尝试在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,这是一个指向正确的链接)。然而,当我尝试运行Shibboleth的bash bin/install.sh时,我得到了JAVA_HOME错误
我已经尝试将JAVA_HOME设置为jre文件夹,结果相同。有什么想法吗

hlswsv35

hlswsv351#

JAVA_HOMEPATH添加到~/.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
希望能帮上忙。

whlutmcx

whlutmcx2#

从Ubantu终端执行:

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"
ryhaxcpt

ryhaxcpt3#

而不是

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

是的

EXPORT JAVA_HOME='/usr/lib/jvm/java-1.7.0-openjdk-amd64'

工作。

uubf1zoe

uubf1zoe4#

根据你的编辑。

sudo vim /etc/profile

在文件末尾添加这两行

export JAVA_HOME="/usr/lib/jvm/java-8-oracle"  
export PATH=JAVA_HOME/bin:$PATH

然后

source /etc/profile

检查

mvn -version
t8e9dugd

t8e9dugd5#

你应该设置路径到bin文件夹在那里java,javac文件被发现.在您的情况下,它可能是/usr/lib/jvm/java-7-openjdk-amd 64/bin

7y4bm7vi

7y4bm7vi6#

我的问题是,install.sh您正在运行的www.example.com脚本的java路径错误。
使用nano编辑文件

sudo nano idp-install.sh

vim编辑器

vim idp-install.sh

并更改对应于Java路径的行,并添加正确的Java路径。这将解决你的问题。
P.S.此解决方案特定于Shibboleth安装的Java路径。

kokeuurv

kokeuurv7#

对于未来的用户,请注意这个问题通常是因为Java在您的环境中没有正确设置。请执行以下步骤来修复此问题
首先,使用以下命令cd /usr/lib/jvm/{jdk-version}检查JDK的位置现在您已经获得了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现在在PATHJAVA_HOME中正确设置,然后对于Shibboleth,您现在也可以定义它的安装路径(这是一个示例-不知道如何设置Shibboleth)

SHIBBOLETH_HOME="/opt/shibboleth-{version}"
whhtz7ly

whhtz7ly8#

导出JAVA_HOME ='/usr/lib/jvm/java-11-openjdk-amd 64'

相关问题