我想编写一个脚本来运行一个.jar文件。 下面的命令可以从终端(在.jar文件所在的文件夹中)运行:
java -jar "./myjavatest.jar"
当我把这行代码放在一个文件里并从同一文件夹中运行它时(使用终端或在Finder中双击),我会得到"无法访问./myjavatest.jar的jar文件"。
我发现,当我双击一个文件时,它实际上是从用户主目录中运行的。 是否可能从文件所在的文件夹运行它?
我想编写一个脚本来运行一个.jar文件。 下面的命令可以从终端(在.jar文件所在的文件夹中)运行:
java -jar "./myjavatest.jar"
当我把这行代码放在一个文件里并从同一文件夹中运行它时(使用终端或在Finder中双击),我会得到"无法访问./myjavatest.jar的jar文件"。
我发现,当我双击一个文件时,它实际上是从用户主目录中运行的。 是否可能从文件所在的文件夹运行它?
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
我曾经遇到过这样的问题,尝试执行一个包含以下内容的 .sh 文件: java -Dlog4j.configuration=file:log4j.properties -jar -Dfile.encoding=ISO-8859-1 mainRPV.jar
问题在于,由于某种原因,文件格式被更改为 DOS 而不是 UNIX,可能是因为它在 Windows 中被编辑和保存。 这与行结尾有关。
尝试使用 vim 打开文件并运行此命令::set ff=unix
祝好!
chmod 755 javatest.jar
更改文件和目录的权限吗?