Java 6'daki dinamik derlemem mükemmel çalışıyor. Ancak, çıkış yolunu değiştirmek istiyorum. Ben bir sürü şey denedim (seni ayıracağım). Neyse, burada çalışma koduDinamik Derleme için Çıkış Yolu Belirtme
String[] filesToCompile = { "testFiles/Something.java" };
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjects(filesToCompile);
CompilationTask task = compiler.getTask(null, fileManager, null,null, null, compilationUnits);
System.out.println("Good? " + task.call());
var Ama çıkış ne istiyorum değil kaynak dizin gider. Yanıtın compiler.getTask
'da bulunabileceğinden şüpheleniyorum, ancak API, bazı parametrelerin ne anlama gelebileceği konusunda çok açık değil. Ya da belki de FileManager ile bir şey. Ben tahmin muhtemelen iyi bir fikir değil, yine
fileManager.setLocation(StandardLocation.locationFor("testFiles2"), null);
ama
denedim.Teşekkürler!
Düzenleme: Bu (üzgün söz konusuysa ve bir daha kompakt bir şekilde) gibi de seçenekler kullanılarak denedim:
final List<String> optionsList = new ArrayList<String>();
optionsList.add("-d what");
Iterable<String> options = new Iterable<String>() {
public Iterator<String> iterator() {
return optionsList.iterator();
}
};
ve sonra getTask için seçenekler geçen değil hata mesajı "geçersiz Bayrak."
+1! –
Her zaman vardı, şimdi yerleşik! –
Cevabım güncellendi. –