OS X启动jar作为启动项不会读取配置文件

时间:2011-11-13 14:18:06

标签: jar osx-snow-leopard

我正在尝试运行命令

java -jar ccu-historian.jar 

作为启动项目

当我在命令行上运行命令时,一切正常

当我尝试通过

将其作为launchAgent运行时
<?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>com.bob.ccuhistorian</string>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-jar</string>
<string>/Users/user/Applications/ccuhistorian/ccu-historian.jar</string>
</array>
</dict>
</plist>

我收到无法运行的错误消息

13.11.11 15:15:34   com.bob[1445]   15:15:34|SEVERE |Exception: Can't access configuration file ccu-historian.config

该文件位于同一个文件夹中,我尝试通过chmod 777进行更改 - 没有更改,从命令行调用时可以读取 - 我做错了什么?

2 个答案:

答案 0 :(得分:0)

我找到了一个有效的解决方案:

写一个bash-script

#!/bin/bash
cd /Users/user/Applications/ccuhistorian/
/usr/bin/java -jar ccu-historian.jar

并致电

/path/to/script.sh

因为只有XML的参数正在运行,但是不应该有更优雅的解决方案吗?

答案 1 :(得分:0)

这可能是一种过度训练。 但是你可以读取Jar文件的当前路径并从中构造配置文件的路径。 问题是,您可能使用相对路径访问它,但“java -jar / path / to / your / file”正在虚假目录中查找它。