使用 "internal" JavaCompiler 时如何设置引导类路径
How to set bootclasspath when using the "internal" 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 个的警告。
从编译器中,您可以获得一个文件管理器来设置引导类路径:
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/StandardLocation.html#PLATFORM_CLASS_PATH
如何解决以下警告
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 个的警告。
从编译器中,您可以获得一个文件管理器来设置引导类路径:
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/StandardLocation.html#PLATFORM_CLASS_PATH