Я получил java-программу, которая использует JavaCompiler для генерации новых файлов классов.
Я использую jdk 1.6 в eclipse, и это прекрасно работает.
Но когда я экспортирую это как файл jar и не хочу компилировать некоторые файлы .java, это дает мне нулевую ошибку (потому что в системе, используемой jre, нет компилятора?).Есть ли способ предоставить компилятор в JAR-файл?
File fRun = new File("someFile.java");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<String> options = Arrays.asList( new String[] { "-d", currentDir+"\\bin\\"} );
Iterable<? extends JavaFileObject> compUnits = fileManager.getJavaFileObjects(fRun);
Boolean compRes = compiler.getTask(null, fileManager, null, options, null, compUnits).call();
if(compRes == true){
System.out.println("Compilation has succeeded");
fileManager.close();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Class<?> compiledClass = cl.loadClass(someFile);
cRun = compiledClass;
}else{
System.out.println("Compilation error");
fileManager.close();
throw new Exception("Compilation Error");
}