,
"javax.tools"
.
String rogue = "package abc; "+
"public class RogueObjectWreakingHavoc extends SomeImportantClass {"+
" { System.exit(-1) }"+
"}"
File sourceFile = new File("RogueObjectWreakingHavoc.java");
FileWriter fileWriter = new FileWriter(sourceFile);
fileWriter.write(rogue);
fileWriter.close();
List<File> files = new ArrayList<File>();
files.add(sourceFile);
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null,
null,
null);
compiler.getTask(null,
fileManager,
null,
null,
null,
fileManager.getJavaFileObjectsFromFiles(files))
.call();
fileManager.close();
, , , , , ( , , )
( , Java) " Java"