使用 Java 的程序在 root 上可以正常运行,但用户使用时会出现错误

使用 Java 的程序在 root 上可以正常运行,但用户使用时会出现错误

我有一个加载 jar 文件的 shell 脚本。使用 sudo 执行时,它会加载。但是,当不使用 sudo 时,我会收到错误,并且它不会加载。

Shell 脚本:

#!/bin/bash

jversion=$(java -version 2>&1 | grep -i version)

if [ -z "$jversion" ]; then
    echo "This software is built using Java technology,"
    echo "so please take a moment to install Java to be able to use the software on your computer."
    echo ""
    exit 1
fi

jv=$(java -version 2>&1 | grep -i version | cut -d'"' -f2 | cut -d'.' -f1-2)

if [ $jv == "1.6" ] || [ $jv == "1.7" ]; then
    echo "Your version of Java is not supported."
    echo "Please update your Java to version 1.8 to be able to use the software on your computer."
    exit 1
fi

java -Duser.dir=/opt/link-assistantcom/ranktracker/resources/ \
     -Xms64m \
     -Xmx768m \
     -Xss1024k \
     -XX:CompileCommand=exclude,javax/swing/text/GlyphView,getBreakSpot \
     -Djava.net.preferIPv4Stack=true \
     -jar /opt/link-assistantcom/ranktracker/bin/ranktracker.jar

我必须删掉错误代码才能发布。任何帮助我都会很感激。

答案1

看来您尝试运行的 jar 文件位于 下/opt/

/opt/由 root 所有...因此需要sudo

为了解决这个问题,请将 jar 文件放在您当前用户拥有的主目录中,然后相应地在脚本中更改其路径,这样它就无需加载sudo

相关内容