Spring & ToolProvider.getSystemJavaCompiler()
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 03.08.18 07:04
Оценка:
Вопрос, назревший по следам вот этого
Автор: Artem Korneev
Дата: 20.06.18
обсуждения.

Для сборки плагина из исходников в рантайме пока пробую использовать Java Compiler API, благо он всё-таки идёт "из коробки" и не требует никаких дополнительных телодвижений. Всё колдовство начинается с простой строчки:

var compiler = ToolProvider.getSystemJavaCompiler();


Ну и, собственно, тут вот и начинаются проблемы.
В тестовом консольном приложении — всё работает, вызов возвращает ссылку на какой-то объект. Использовать тот объект пока не пробовал, но ссылка не нулевая. Ровно та же строчка кода, запущенная в приложении на Spring, возвращает null. Ну, наверное, логично — приложение, запущенное через Spring, скорее всего, имеет какие-то ограничения в плане доступа к основной системе. Безопасность там и вот это вот всё.

Собственно, вопрос. Как бы всё нужное окружение "упаковать" в Spring-приложение, чтоб всё это заработало? В документации к Java Compiler API говорится, что оно идёт с модулем JDK.compiler:

https://docs.oracle.com/javase/10/docs/api/jdk.compiler-summary.html

Ну или хоть ткните, в какую сторону читать.. во внутренних премудростях Spring — пока не силён. Собственно, потому и ковыряюсь с этими экспериментами, чтоб лучше понять эти нюансы.
С уважением, Artem Korneev.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.