Как установить bootclasspath при использовании «внутреннего» JavaCompiler - PullRequest
0 голосов
/ 26 декабря 2018

Как разрешить следующее предупреждение

warning: [options] bootstrap class path not set in conjunction with -source 8

при использовании внутреннего JavaCompiler?

Пример кода (немного изменен из моего источника):

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
JavaCompiler.CompilationTask task = compiler.getTask(null, null, null, compilerOptions, null, javaFileObjects);
task.call();

Очевидная вещь, которую я попытался, - указать -bootclasspath для compilerOptions в приведенном выше примере кода.Но вы можете указывать опции только в группе Option.OptionGroup.BASIC (а это не так).

Редактировать: Дополнительная информация: я использую OpenJdk11 и получаю предупреждение для всех источников до 10.

1 Ответ

0 голосов
/ 29 декабря 2018

С помощью компилятора вы можете получить файловый менеджер для установки пути начальной загрузки:

StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
List<File> filePaths = ...;
fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, filePaths);

https://docs.oracle.com/javase/8/docs/api/javax/tools/StandardJavaFileManager.html#setLocation-javax.tools.JavaFileManager.Location-java.lang.Iterable-

https://docs.oracle.com/javase/8/docs/api/javax/tools/StandardLocation.html#PLATFORM_CLASS_PATH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...