Использовать Java в качестве языка сценариев оболочки Linux? - PullRequest
3 голосов
/ 04 июня 2011

До этого я использовал cshell / tcshell и затем обратился к python.

Теперь я собираюсь объединить все мои скрипты оболочки, графический интерфейс, базу данных, веб-страницы. Python хорош в большинстве работ, но относительно слаб в графическом интерфейсе, общей производительности и библиотеках третьей части.

Так что я собираюсь попробовать java в качестве основного языка разработки. Хорошо ли это в интерактивном программировании оболочки, управлении процессами и т. Д.?

Большое спасибо.

Ответы [ 4 ]

3 голосов
/ 04 июня 2011

Посмотрите на Groovy , если хотите использовать платформу Java в качестве языка сценариев.

3 голосов
/ 04 июня 2011

Java сама по себе может быть не самым лучшим языком оболочки из-за медленного времени загрузки, отсутствия встроенных библиотек для работы с операционной системой, командами и файлами (я имею в виду, что даже нет способа скопировать файл вJava, не прибегая к созданию двух потоков ввода и вывода и передаче данных, чёрт!).

Однако!Существует множество языков на основе JVM, таких как JRuby (ruby), Rhino (javascript), Jython (python), Groovy или Grash , Bean-shell и т. Д., Которые работают как языки оболочки и могут запускать другиеJava-написанные программы.Я бы порекомендовал вам взглянуть на Граш , это, вероятно, именно то, что вам нужно.

Некоторые из этих языков даже имеют способ предварительной загрузки среды выполнения JVM для ускорения времени загрузки (например, Nailgun для JRuby), так что это может решить проблему медленной загрузки.Также см. этот пост для использования Ruby (JRuby) в качестве языка оболочки.

1 голос
/ 04 июня 2011

Загрузка JVM обычно медленная и потребляет много памяти (по сравнению с нативными приложениями) Поэтому он не подходит для запуска многих (параллельных) небольших приложений (процессов), которые часто запускаются и умирают. ... если это было ваше намерение

0 голосов
/ 29 апреля 2017

Я написал jpad для запуска java-сценариев оболочки и интерактивных фрагментов, а также для приятной визуализации результатов.Это показывает, что я имею в виду:

JPad Java REPL

Чтобы скопировать файл, используя его в качестве языка сценариев, вы должны использовать: http://jpad.io/example/1I/fileio

final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));

Что вы можететакже запускается из командной строки как:

> more fileio.jpad
final File file = new File("outt.csv");
Object o = new int[] {1,2,3};
JPad.writeCsv(o, file);
java.nio.file.Files.copy(file.toPath(), Paths.get("copy.csv"));
> jpad fileio.jpad
> dir
29/04/2017  13:30    <DIR>          .
29/04/2017  13:30    <DIR>          ..
29/04/2017  13:30                16 copy.csv
29/04/2017  13:30               160 fileio.jpad
29/04/2017  13:30                16 outt.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...