OS X Java .apple не может открыть другие приложения?

Я написал приложение Java SWT для OS X, экспортировал его как .jar и упаковал в .app. Все работает так, как и ожидалось, за исключением важной части в моем приложении; требуется открыть другие приложения.

я пробовалRuntime.exec(); так же какProcessBuilder сделать это, вызываяopen команда на других приложениях, которые мне нужны для запуска. Это отлично работает из Eclipse или если я запускаю свой экспортированный .jar через Терминал. Однако он не работает при двойном щелчке на .app.

Мне интересно, является ли это ошибкой с моей стороны, или ограничением либо Java, либо OS X. Поскольку приложения Mac находятся в «песочнице» (насколько я понимаю), может быть, поэтомуopen из приложения ничего не делает?

Я использовал два подхода к открытию нужного мне приложения. Это игра Steam, но она также продается в розницу, поэтому ее можно запустить либо через само приложение, либо с помощьюsteam:// протокол. В моем коде я пробовал следующее:

ProcessBuilder pb = new ProcessBuilder("open", "steam://rungameid/57300//");
pb.start();
ProcessBuilder pb = new ProcessBuilder("open", appDir);
pb.start();

appDir строка, содержащая путь к пакету .app, который я хочу начать.

Любые идеи, почему это не удается из комплекта приложений Mac, но работает нормально из Eclipse / Jar? Запуск приложения с консолью (через bash-скрипт в комплекте) не возвращает никаких ошибок, поэтому мне кажется, что Java отлично выполняет команду, но OS X, возможно, игнорирует ее?

Я также пытался найти это в Google, но, возможно, это очень необычно или просто очень специфично, и я не смог ничего найти.

Ответы на вопрос(2)

Ваш ответ на вопрос