如何为不在路径上的JDK创建JavaCompiler实例?

问题描述

如何创建不在系统上的JavaCompiler实例?更具体地说,我希望能够从版本号创建一个JavaCompiler实例。

我看到的创建JavaCompiler实例的唯一技术是

  • 使用JavaCompiler compiler = ToolProvider.getSystemJavaCompiler()

  • 使用JavaCompiler compiler = new JavacTool()

  • 找到用于编译器的tools.jar文件,然后使用以下代码。问题是自JDK 9起,tools.jar已被删除

     File file = new File(pathToToolsJar);
     URL[] urls = new URL[]{ file.toURI().toURL() };
     ClassLoader loader = new urlclassloader(urls);
     Class compilerClass = loader.loadClass("com.sun.tools.javac.api.JavacTool");
     JavaCompiler compiler = (JavaCompiler) compilerClass.getConstructor().newInstance();
    

反正有为任何Java版本创建JavaCompiler实例吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)