Java: Язык сценариев (макрос) для встраивания в настольное приложение Java

Временно решил эту проблему, вставив этот код в crontab:

*/3 * * * * test "`sudo find /var/lib/mysql/mydatabase/onetable.idb -mmin -4`" && /etc/myscript.sh

Это не постоянное решение, потому что я хочу выполнить этот скрипт на основе триггера.

7
задан Community 23 May 2017 в 10:29
поделиться

8 ответов

Я просто считал Steve Yegge Универсальный Шаблон разработки. Статья находится по намного более широкой теме, чем просто встроенные сценарии в JAVA-приложении, но так как автор пишет JAVA-приложение, которое позволяет писать сценарий (использование Jython), существуют проницательные точки, которые я нашел интересным.

И JavaScript является одним из двух лучших языков сценариев на планете в самом корректном смысле термина "язык сценариев": а именно, языки, которые были специально разработаны, чтобы встраиваться в большие хост-системы и затем использоваться, чтобы управлять или "написать сценарий" объектов в хост-системе. Это - то, что JavaScript был разработан, чтобы сделать. Это является довольно маленьким с некоторыми дополнительными расширениями, это имеет довольно трудную неофициальную спецификацию, и это имеет тщательно обработанный интерфейс для появляющихся объектов хост-системы прозрачно в JavaScript.

Напротив, Perl, Python и Ruby являются огромным разрастанием, всей попыткой (как C++ и Java), чтобы быть лучшим языком для каждой задачи. Единственным другим основным языком там, который конкурирует с JavaScript для сценариев произвольных хост-систем, является Lua, известный тем, что был предпочтительным языком сценариев для игровой индустрии.

Я соглашаюсь с ним при сужении к JavaScript и Lua.

Без удобных примеров все, что я могу сделать, говорят, что использование JavaScript/носорога (или Lua, после того как это стало доступным на JVM), возможно, сделало мою жизнь легче.

Я лично предпочитаю JavaScript на платформе Java. Население базы пользователей является более многочисленным. Как Yegge выражается, это - "самый недооцененный язык программирования в мире", но сумма ресурса, доступного на языке, плюс. Носорог кажется зрелому зверю.

1
ответ дан 6 December 2019 в 10:55
поделиться

если целевая аудитория не является "никакими навыками программирования....", выбирают jython (Python), легко учиться. (мой 7-летний дочерний элемент изучил это очень быстрый),

Bruce Eckel сделал главу с jython в "размышлении в Java".

в опасности, получающей Python "вниз-голосования", легче как ОСНОВНОЙ :-)

9
ответ дан 6 December 2019 в 10:55
поделиться

Lua ценится, среди прочего, простотой языка, помогая учиться. LuaJava использует исходную реализацию Lua, заставляя это завершиться, но поскольку Вы указываете на него, возможно, тонкий для установки. Я знаю, по крайней мере, чистую реализацию Java Lua: Калуа. Это не завершено (недостающая поддержка сопрограммы среди прочего, но можно сделать много без них), но возможно уже применимый для Вашей цели.
В отличие от, скажем, Groovy, это не должно добавлять много служебное к Вашему приложению...

3
ответ дан 6 December 2019 в 10:55
поделиться

Если бы Вы хотели полностью выложиться, то Вы могли бы использовать сценарии для Платформы Java, как определено JSR 223. Проявление того подхода позволило бы приложению использовать любой язык, который имеет соответствующий механизм выполнения сценария.

2
ответ дан 6 December 2019 в 10:55
поделиться

Существует также BeanShell, который имеет преимущество того, чтобы быть полностью утвержденным JSR, и поэтому возможно, более вероятно для слоняний поблизости.

http://www.beanshell.org/

1
ответ дан 6 December 2019 в 10:55
поделиться

Java 6 уже имеет JavaScript в наличии как язык сценариев JSR 223 из поля.

1
ответ дан 6 December 2019 в 10:55
поделиться

Я в настоящее время ищу библиотеку, которая позволит мне использовать объекты Java и методы из сценариев Lua.

Моя первая идея состояла в том, чтобы использовать LuaJava также, но поскольку я хочу, чтобы это работало над Linux, Mac и Windows, я пугался того, что это использует скомпилированный lib в дополнение к материалу Java. Только предварительно скомпилированные двоичные файлы Windows доступны, и я не эксперт по Mac, таким образом, я пытался найти что-то в чистом Java, и я нашел это: http://sourceforge.net/projects/luaj

Это, кажется, реализует API C, описанный в документе Lua, а также API от LuaJava.

Проект кажется действительно усовершенствованным, существуют примеры вызовов Swing от Lua (!), и они работали над моим полем Linux. Но странно, списки рассылки, форумы и документация действительно редки.

Я собираюсь пробовать это в Windows и Mac, также. Надеюсь, что это работает.

Калуа был упомянут, но он только предназначен для J2ME, вот почему он испытывает недостаток в некоторых частях Lua. Я думаю, что существует проект под названием Mochalua, который имеет те же цели.

LuaJ, с другой стороны, существует двух версий, один предназначенный в J2SE, который реализует все (сопрограммы, также), и один предназначенный в J2ME, которому недостает 2 или 3, освобождает, я думаю (включая материал LuaJava, которому нужно отражение).

1
ответ дан 6 December 2019 в 10:55
поделиться

Вы могли бы рассмотреть Jacl. Это основано на Tcl, который был первоначально разработан, чтобы быть встраиваемым языком сценариев. Так, можно было утверждать, что это намного больше подходит с этой целью, чем другие языки сценариев, которые имели способность, которая будет встроена прикрепляемые - на.

Особенно, если целевая аудитория является "не жесткими программистами", Jacl делает прекрасный выбор. Умные люди (и особенно те, которые не имеют зашитых предубеждений программирования) могут легко взять синтаксис Tcl утром.

0
ответ дан 6 December 2019 в 10:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: