#jar #osx-snow-leopard
#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 — никаких изменений, и его можно прочитать при вызове из командной строки — что я делаю не так?
Ответ №1:
Я нашел рабочее решение:
написание bash-скрипта
#!/bin/bash
cd /Users/user/Applications/ccuhistorian/
/usr/bin/java -jar ccu-historian.jar
и вызов
/path/to/script.sh
работает как единственный параметр XML, но не должно ли быть более элегантного решения?
Ответ №2:
Это может быть чрезмерное обновление. Но вы могли бы прочитать текущий путь к файлу Jar и построить путь к файлу конфигурации из этого. Проблема в том, что вы, вероятно, получаете к нему доступ по относительному пути, но «java -jar / path /to / your / file» ищет его в ложном каталоге.