Ubuntu上运行jar包问题

Ubuntu上安装了jdk,不在管理员模式下运行jar包能运行,在管理员下却显示要安装
Command 'java' not found, but can be installed with:

这是为啥呢


apt install default-jre              # version 2:1.11-72, or
apt install openjdk-11-jre-headless  # version 11.0.18+10-0ubuntu1~20.04.1
apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
apt install openjdk-17-jre-headless  # version 17.0.6+10-0ubuntu1~20.04.1
apt install openjdk-8-jre-headless   # version 8u362-ga-0ubuntu1~20.04.1
apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04

如果仍然遇到Command 'java' not found的错误,可以使用以下命令在Ubuntu上安装Java(如果您尚未安装它):

sudo apt update
sudo apt install default-jre

这将安装Java的默认版本并将它添加到系统路径中。您现在应该能够在管理员模式下正常运行JAR文件。

因为安装在当前用户环境下,如同windows的用户环境变量,系统环境变量中并没有。可以手动将java安装目录配置到系统环境变量中,或者在管理员账号下,重新安装。
手动配置的方法:
vim /etc/profile

export JAVA_HOME=/usr/local/jdk   # 你的java安装路径
export JAVA_BIN=$JAVA_HOME/bin    # 不用动
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 不用动
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH # 不用动
  • 看下这篇博客,也许你就懂了,链接:Ubuntu 运行 java -version 命令,提示:The program 'java' can be found in the following packages ...
  • 除此之外, 这篇博客: 在ubuntu环境中安装java中的 3. 在ubuntu环境中运行jar包 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 用Idea生成demo-0.0.1-SNAPSHOT.jar

    java -jar demo-0.0.1-SNAPSHOT.jar
    
    # 后台运行
    java -jar demo-0.0.1-SNAPSHOT.jar &
    # 查看当前终端后台运行的任务
    jobs
    # 查看当前用户进程
    ps -ef|grep java
    # 关闭当前后台运行的命令
    kill PID
    
  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析:

    根据问题描述,可以得知在以管理员权限运行jar包时,出现了Command 'java' not found的错误提示。这可能是因为管理员账户没有设置JAVA_HOME和PATH环境变量,导致找不到Java命令。

    解决方案:

    1. 首先,以管理员身份登录Ubuntu系统。

    2. 执行以下命令,检查系统是否已经安装Java:

    java -version
    

    如果没有安装Java,可以使用以下命令安装openjdk-8-jdk-headless:

    sudo apt-get update
    sudo apt-get install openjdk-8-jdk-headless
    
    1. 确保已经设置好JAVA_HOME和PATH环境变量。可以执行以下命令检查:
    echo $JAVA_HOME
    echo $PATH
    

    如果没有设置,可以按照以下步骤设置:

    在/etc/profile文件中添加以下内容:

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

    然后执行以下命令更新环境变量:

    source /etc/profile
    
    1. 确认已经设置好环境变量后,再次以管理员身份运行jar包。如果还是出现Command 'java' not found的错误提示,可能是因为Java命令的路径没有加到管理员的PATH环境变量中。可以通过以下步骤解决:

    在/etc/sudoers文件中添加以下内容(其中,/usr/lib/jvm/java-8-openjdk-amd64是Java的安装路径):

    Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-openjdk-amd64/bin"
    

    保存后,以管理员身份再次运行jar包即可。

    参考资料:

    1. Ubuntu JDK安装和环境变量配置 https://blog.csdn.net/lonely_fireworks/article/details/78130215

    2. sudo命令查找不到java https://www.cnblogs.com/v5145243/p/7903958.html