Ich habe das folgende Programm, das eine Methode zu sich selbst hinzufügt, wenn es ausgeführt wird. Aber ich muss es jedes Mal mit der F5-Taste oder der Aktualisierungsoption aktualisieren. Gibt es eine Möglichkeit, die Aktualisierung im Programm selbst zu kodieren, so dass es sich nach der Änderung aktualisiert? Das Projekt, an dem ich gerade arbeite, ist eine Java-Anwendung und kein Eclipse-Plugin. Soweit ich weiß, kann die refreshLocal() -Methode nicht verwendet werden.Programmgesteuertes Aktualisieren einer Datei in einer Eclipse-Java-Anwendung
public class Demo {
public static void main(String[] args) throws IOException, CoreException {
File file = new File("/home/kishan/workspace/Roast/src/Demo.java");
if (file.exists()) {
JavaClassSource javaClass = Roaster.parse(JavaClassSource.class,
file);
javaClass.addMethod().setPublic().setStatic(true)
.setName("newMethod").setReturnTypeVoid()
.setBody("System.out.println(\"newMethod created\");")
.addParameter("String[]", "stringArray");
FileWriter writer = new FileWriter(file);
writer.write(javaClass.toString());
writer.flush();
writer.close();
}
}
}
Ich habe versucht, die refreshLocal() -Methode in der Eclipse JDT definiert, aber da mein Projekt ist eine Java-Anwendung der ResourcePlugin.getWorkspace() -Methode nicht geben funktioniert mir einen „Arbeitsbereich geschlossen“ Fehler.
Jeder Vorschlag wird geschätzt.
Die .java-Datei, die Sie bearbeiten, ist nicht die .class-Datei, zu der sie kompiliert und ausgeführt wird. – ChiefTwoPencils
@ChiefTwoPencils Was versuchen Sie zu implizieren? –
@ChiefTwoPencils Vielleicht möchte er in Eclipse auf "run" klicken; und möchte dann die hinzugefügte Methode in Eclipse sehen ... ohne F5 erneut zu drücken. Mit anderen Worten: Die Ausführung der Klasse sollte dazu führen, dass Eclipse seine Quellsichten aktualisiert. – GhostCat