无法从MAC上的脚本访问jarfile

时间:2012-12-13 13:46:51

标签: java linux macos executable-jar

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

java -jar "./myjavatest.jar" 

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

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

3 个答案:

答案 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

问候!