4

我正在尝试编写一个运行 .jar 文件的脚本。以下命令可从终端运行(来自 .jar 文件夹):

java -jar "./myjavatest.jar" 

当我将此行放在一个文件中并从同一个文件夹中运行它(使用终端或在查找器中双击)时,我得到“无法访问 jarfile ./myjavatest.jar”。

我发现当我双击一个文件时,它实际上是从用户主目录运行的。是否可以从文件所在的文件夹中运行它?

4

3 回答 3

6

我发现当我双击一个文件时,它实际上是从用户主目录运行的。是否可以从文件所在的文件夹中运行它?

就在这里:

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
于 2012-12-25T11:19:52.310 回答
0

您是否尝试过更改文件和目录的权限chmod 755 javatest.jar

于 2012-12-13T14:29:47.907 回答
0

我在尝试执行包含以下内容的 .sh 文件时遇到了这个问题: java -Dlog4j.configuration=file:log4j.properties -jar -Dfile.encoding=ISO-8859-1 mainRPV.jar

问题是由于某种原因文件格式被更改为 DOS 而不是 UNIX,可能是因为它已被编辑并保存在 Windows 中。它与行尾有关

尝试用 vim 打开文件并运行这个命令:set ff=unix

问候!

于 2013-04-24T17:26:15.803 回答