Лучший способ выполнить AppleScript из Java - PullRequest
5 голосов
/ 28 декабря 2011

У меня есть пара AppleScripts, которые я хочу запустить с Java.У меня есть несколько вариантов, в том числе:

Запуск AppleScript в виде строки с использованием AppleScript ScriptEngine (с использованием ((new ScriptEngineManager()).getEngineByName("AppleScript")).eval(scriptString))) Сохранение AppleScript как приложения и запуск приложения из Java (с использованием Desktop.getDesktop().open("name.app"))

Эти два мне показались лучшими, и мне было интересно

Есть ли лучший способ? Если! (1). Какой из этих двух способов самый лучший?(Speedwise) Если! (1.) Есть ли способы улучшить мои методы?

Ответы [ 3 ]

1 голос
/ 28 декабря 2011

Ваш первый вариант звучит правильно для меня, но если по какой-то причине вы хотите запустить его как внешний скрипт, вы можете рассмотреть возможность запуска osascript так же, как вы запускаете скрипт оболочки.

1 голос
/ 28 декабря 2011

Я думаю, что вариант 1 может быть вашим лучшим выбором из-за того, как работает Applescript.

Существует два типа Applescript: простой текстовый Applescript, затем скомпилированный Applescript.Complied Applescript был преобразован (по существу) в байт-код компилятором Applescript.

Таким образом, если ваше приложение позволяет это, вы можете рассмотреть возможность компиляции всех ваших Applescripts один раз , а затем вызвать их позже.Это сэкономит вам некоторое время (секунды?).

(я просто предполагаю, что в дополнение к команде eval в вашем классе Java есть способ просто скомпилировать Applescript.)

На этапе компиляции Applescript также пытается идентифицировать все приложения, которые использует скрипт.Я полагаю, что именно на этом этапе Applescript может сказать: «Извините, я не могу найти SurfWriter, пожалуйста, укажите мне приложение».Такой вид взаимодействия с пользователем - одна из тех вещей, которые пользователь хочет сделать как можно меньше;)

1 голос
/ 28 декабря 2011

Не уверен, что я бы пошел с 2, это похоже на очень большой молот.

Другим старым стилем было использование команды osascript.

Насколько я знаю, использование скриптового движка является предпочтительным методом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...