我正在尝试编写一个运行.jar文件的脚本。 以下命令适用于终端(来自.jar文件夹):
java -jar "./myjavatest.jar"
当我将这一行放在一个文件中并从同一个文件夹运行(使用终端或在finder中双击)时,我得到“无法访问jarfile ./myjavatest.jar”。
我发现当我双击一个文件时,它实际上是从用户主目录运行的。 是否可以从文件所在的文件夹中运行它?
答案 0 :(得分:5)
我发现当我双击一个文件时,它实际上是从用户主目录运行的。是否可以从文件所在的文件夹中运行它?
是的,有:
SOURCE="${BASH_SOURCE[0]}"
DIR="$( dirname "$SOURCE" )"
while [ -h "$SOURCE" ]
do
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd "$DIR"
java -jar myjavatest.jar
答案 1 :(得分:0)
您是否尝试使用chmod 755 javatest.jar
更改文件和目录的权限?
答案 2 :(得分:0)
尝试使用此内容执行.sh文件时出现此问题: java -Dlog4j.configuration = file:log4j.properties -jar -Dfile.encoding = ISO-8859-1 mainRPV.jar
问题是由于某种原因,文件格式被更改为DOS而不是UNIX,可能是因为它已被编辑并保存在Windows中。 它与行结尾有关
尝试使用vim打开文件并运行以下命令:set ff = unix
问候!