我有一个加载 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
。