【问题标题】:JAVA_HOME should point to a JDK not a JRE + JAVA_HOME is not defined correctlyJAVA_HOME 应该指向 JDK 而不是 JRE + JAVA_HOME 未正确定义
【发布时间】:2021-09-15 11:43:01
【问题描述】:

我在我的服务器上编辑了我的.bashrc 文件,使用sudo nano ~/.bashrc

export JAVA_HOME=/usr/bin/java
export PATH=${PATH}:${JAVA_HOME}/bin

我已经重新登录了,这里是输出的所有路径:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# echo $JAVA_HOME
/usr/bin/java
root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin/java/bin

但是当我尝试运行我的 spring boot 服务器时,它给了我:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# ./mvnw spring-boot:run
Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/bin/java/bin/java

当我尝试执行mvn install 时,我得到:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# mvn install
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

但是这里是java配置列表:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# sudo update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

当我尝试运行时(只是尝试过,没有安装依赖项),我得到:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/maifee/backend-spring# ./mvnw spring-boot:run
Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/bin/java/bin/java

如何设置我的环境以正确运行我的 Spring Boot 服务器?我那里直接有源代码,我什至不需要编译和东西。

【问题讨论】:

  • 您需要将 JAVA_HOME 指向您在 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 或 /usr/lib/jvm/java-11-openjdk 中的 JRE -amd64/bin/java。好像在 usr/bin/java/bin/java 中没有 Java 可执行文件。
  • 例如,设置JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64,然后设置PATH=${PATH}:${JAVA_HOME}/bin
  • 这能回答你的问题吗? JAVA_HOME should point to a JDK not a JRE

标签: java linux spring spring-boot ubuntu


【解决方案1】:

JAVA_HOME 指向 java 的基本安装目录: /usr/lib/jvm/java-11-openjdk-amd64/ 不是 /usr/bin/java,这可能是指向 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 的符号链接

然后在PATH 变量中附加$JAVA_HOME/bin

所以它应该看起来像这样:

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
PATH=$JAVA_HOME/bin:$PATH

仅供参考,update-alternatives 仅负责更改 java 的符号链接以将其指向不同版本的可执行文件, 把它想象成一个简单的ln -s /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/bin/java

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 2019-04-19
    • 2013-07-10
    • 1970-01-01
    • 2018-11-10
    • 2019-02-27
    • 2020-04-30
    • 2023-03-15
    相关资源
    最近更新 更多