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, но, возможно, это очень необычно или просто очень специфично, и я не смог ничего найти.