Выйти из программы java в команду linux - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю небольшой инструмент, который работает с устройством exoti c, с множеством опций для управления им и т. Д. c. Одним из них может быть поиск tty-портов, поиск подходящего, а затем отправка пользователя в «minicom» с некоторыми параметрами, например.

Как я могу заставить java полностью завершиться при выполнении спецификаций c команда, при определенных условиях, после такого выхода?

Первоначально предполагалось использовать сценарий bash, сканировать возвращаемое значение, общаться через файлы и т. д. c. Полнофункциональная интерактивная последовательная консоль в Java было бы мечтой, но те, которые я пробую сейчас, не могут даже найти tty порты сейчас.

1 Ответ

1 голос
/ 30 апреля 2020

Большинство процессов в linux следуют за стеком вызовов, где процесс A вызывает процесс B, который вызывает процесс C. Когда процесс C завершается, управление возвращается к процессу B. и т. Д.

Похоже, в этом случае вы хотите, чтобы java вызывал минимум, но когда java завершится, вернитесь к родительская оболочка.

Я не знаю, каким образом вы можете завершить JVM при вызове другого процесса (возвращаясь к родительскому объекту JVM, когда он завершается). Возможно, с некоторыми умными C вызовами, использующими JNI, но на самом деле это уже не java и может создать новые проблемы.

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

...