Возможно, вы захотите запустить компилятор Java как внешний процесс.Все современные реализации Common Lisp овец с ASDF, который включает в себя библиотеку IUOP (Утилиты для реализации и переносимости ОС).
Итак, попробуйте прямо сейчас:
(uiop:run-program (list "javac" "--option" "myfile.java") :output t)
The :output t
выводит его на стандартный вывод.
Из-за lisp из-за ошибки появляется интерактивный отладчик.Если вы хотите ловить и красиво печатать ошибки:
(handler-case
(uiop:run-program (list "javac" "--stuff") :output t)
(error (c) (format t "~a" c)))
Для асинхронного запуска используйте launch-program
.
Подробнее: https://lispcookbook.github.io/cl-cookbook/os.html#running-external-programs