Вам нужно использовать компилятор в "tools.jar"
ToolProvider.getSystemJavaCompiler()
вернет компилятор из jdk, определенного в переменной пути,
Вы можете сделать это вместо:
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();
Или вы можете добавить tools.jar в виде библиотеки во время компиляции
import com.sun.tools.javac.api.JavacTool;
...
JavaCompiler compiler = new JavacTool();
Или вы можете изменить Системные свойства, но это приводит к неожиданному поведению