Как установить bootclasspath при использовании "внутреннего" JavaCompiler
Как вы можете решить следующее предупреждение
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 ответ
Из компилятора вы можете получить файловый менеджер для установки пути загрузки:
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
https://docs.oracle.com/javase/8/docs/api/javax/tools/StandardLocation.html