我正在尝试使用MacOS“scheduler”launchd
执行一些Java代码。
我的plist文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.nathangrigg.archive-tweets</string>
<key>ProgramArguments</key>
<array>
<string>/Users/ie54553/Desktop/MyProject/script.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/out.out</string>
<key>StandardErrorPath</key>
<string>/tmp/err.out</string>
</dict>
</plist>
script.sh:
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/bin/java -jar /Users/ie54553/Desktop/MyProj/classes/artifacts/jarFile_jar/Application.jar
问题是,我在程序中的所有相对路径(资源路径,属性,日志位置,spring bean文件等)都失败了。
plist文件位于根文件夹下,因此我假设所有路径都相对于执行程序位置。
答案 0 :(得分:0)
如果路径以&#39; /&#39;开头。那么它被认为是一条绝对的道路,并被视为如此。有没有&#39; tmp&#39;目录下&#39; /&#39; (并具有写访问权限)?如果没有,请尝试&#39; tmp&#39;而不是&#39; / tmp&#39;。
来自docs:
对于UNIX平台,绝对路径名的前缀始终为&#34; /&#34;。相对路径名没有前缀。表示根目录的抽象路径名具有前缀&#34; /&#34;和一个空名称序列。