How do you create a JavaCompiler instance not on your system? More specifically, I would like to be able to create a JavaCompiler instance from a version number.
The only techniques I have seen for creating JavaCompiler instances are
Using
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler().Using
JavaCompiler compiler = new JavacTool()Locate the tools.jar file for the compiler, and then use the following code. The problem with this is the tools.jar has been removed since JDK 9
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();
Is there anyway to create a JavaCompiler instance for any Java version?