In einem Plugin main einer anderen Klasse aufrufen

Status
Nicht offen für weitere Antworten.

StefanTmp

Mitglied
Hallo zusammen,

wie ist es möglich, während des Ausführens eines Plugins eine main zu starten? Zur Information: Der Benutzer erstellt ein neues File mit der Endung ".test", der eigens erstellte Editor springt an. Jetzt tippt der Benutzer drauf los, speichert und betätigt "Generate" im Kontextmenü des Editors. Nun soll die Klasse Generate aufgerufen werden, welche nicht teil des Plugins ist. Aufteilung der Java-Klassen: Java-Projekt Editor (alles zum Editor) und Java-Projekt Generator (alles zum Generator). Die Generatorklasse besitzt eine main-Methode.

Danke für eure Hilfe.

Gruß
StefanTmp
 

faetzminator

Gesperrter Benutzer
Entweder du kennst die Klasse während dem programmieren und kannst dann direkt [c]Klasse.main(args)[/c] aufrufen oder du holst dir mit Reflection die Klasse, Methoden etc.
 

StefanTmp

Mitglied
Hallo faetzminator,

danke für deine schnelle Antwort. Wenn ich versuche, den Generator mittels Generator.main(args) aufzurufen, wird mir die EventTable.class geöffnet, welche Source not found anzeigt. "The JAR of this class file belongs to container 'Plug-in Dependencies' which does not allow modifications to source attachments on its entries".
 

StefanTmp

Mitglied
Es handelt sich um ein Eclipse Plugin, dabei habe ich beim Anlegen des Plugins das Template "Plugin with an editor" gewählt, welches einen simplen xml Editor ohne Funktionen erzeugt. Dieses Plugin habe ich nun um Content-Assist-, Formatting- und Outline-Funktionen erweitert. Nun soll die im ersten Post beschriebene Funktionalität noch ergänzt werden
 

StefanTmp

Mitglied
Hallo,

ich verstehe den Post nicht ganz. Folgendermaßen sieht der Code bisher aus:

Java:
	public void run(IAction action) {
		String[] lArguments={"C:\\PfadZuArgument1\\argument1",  "C:\\PfadZuParsendemFile\\test.a4l",  "C:\\PfadZuOutput\\output" };
		JavaGenerator.main(lArguments);
	}

Generiert wird allerdings nichts..
Ich kann auch nicht durch den Generator debuggen, da ich nur die Source angezeigt kriege.
 

StefanTmp

Mitglied
Hallo,

das oben beschriebene Problem konnten wir lösen, indem wir einfach die Klassen in ein Plugin gepackt und dieses Plugin dann zu den dependencies des Editor-Plugins hinzugefügt haben. Problem ist nun, dass der Generator einige System.exits besitzt, welche den Editor auch beenden, was natürlich nicht sein soll.

Man kann doch mittels

Java:
Runtime.getRuntime().exec("command");

externe Programme laden, ginge das nicht auch mit der main() einer Java Klasse?
 

StefanTmp

Mitglied
Puh, ein Codebeispiel hast du nicht zufällig zur Hand?
Will nicht unverschämt sein, bin bloß neu in der Thematik

Grüße
 

Wildcard

Top Contributor
ProcessBuilder hilft dir nur die Commandline richtig zu escapen, ist also einfacher als Runtime#exec. Ansonsten ist es genau das gleiche, du musst nur den Konsolenaufruf bauen, also zB
Code:
java -jar -Xmx256m DeinJar.jar
 

StefanTmp

Mitglied
DeinJar.jar setzt doch voraus, dass ich das Projekt zu einem Archiv zusammengefügt habe. Wäre bei einer Klasse dann der Parameter java -class -Xmx256m?? MeineKlasse.class nötig?
 

StefanTmp

Mitglied
Morgen,

folgendes Testprogramm:

Klasse starter:
klasse1.class befindet sich direkt in Laufwerk C.

Java:
public class starter {
	public static void main(String[] args) throws IOException {
		ProcessBuilder lProcess = new ProcessBuilder("java", "-cp", "C:/",
				"klasse1.class");
		lProcess.start();

	}
}

Klasse klasse1:

Java:
public class klasse1 {
	public static void main(String args[]) throws IOException {
		System.out.println("test");

	}
}

Wenn er klasse1 aufrufen würde, müsste doch auch test in der Console ausgegeben werden?
 

Wildcard

Top Contributor
Nein, das Process handle hat einen OutputStream (getOutputStream). System.out.println landet in diesem Stream
 

StefanTmp

Mitglied
Ah ok, jetzt habe ich die Sache verstanden. Vielen Dank dafür.

Eine Frage habe ich noch:

Gibt es die Möglichkeit, diesen Prozess auch zu debuggen?
 

Wildcard

Top Contributor
Ja, Stichwort Remote Debugging. Eclipse hat damit kein Problem, du musst nur ein paar zusätzliche Parameter an die VM mitgeben und dich dann mit dem Eclipse debugger verbinden
 

StefanTmp

Mitglied
Hallo,

zu dem Debugger mein Code bisher:

Java:
ProcessBuilder builder = new ProcessBuilder().command(
				"java",
				"parser.Generator",
				"Argument1", "Argumen2", "Argument3", 
				"-agentlib:jdwp=transport=dt_socket,server=y,address=8000");
		Map<String, String> environment = builder.environment();

		environment.put("path", ";"); // Clearing the path variable;
		environment.put("path", "java.home");

		builder
				.directory(new File(
						"C:\\PfadZuDerGeneratorClass\\bin\\"));
		builder.redirectErrorStream(true);
		try {
			Process javap = builder.start();
System.out.println(javap.waitFor());

Damit stoppt die Ausführung der Klasse, welche den ProcessBuilder aufruft, bei println. Wie geht es jetzt weiter? Ich muss also via Debug -> Configurations -> Remote Java Application eine neue Config GeneratorDebug für die Generatorklasse anlegen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Plugin - JUnit - Tests aus einem anderen Projekt ausführen Plattformprogrammierung 7
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
O Problem mit relativen Pfaden in einem RCP-Plugin Plattformprogrammierung 5
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
K Einträge von einem PlugIn unterbinden. Plattformprogrammierung 6
Z Aus einem PDF-Formular heraus eine Android App Outlook starten Plattformprogrammierung 3
D JNA Referenz zu einem Array übergeben in c++ Library(dll) Plattformprogrammierung 3
F OSGi Applikation läuft einem Linux langsam, auf dem anderen normal Plattformprogrammierung 4
M Grahiti in einem RCP Projekt implementieren Plattformprogrammierung 1
C RCP Zwei Commands in einem Handler Plattformprogrammierung 2
C RCP Generieren eines WAR-Files aus einem lauffähigen Product Plattformprogrammierung 2
S GMF Editor mit einem zur Laufzeit erstellten Modell Plattformprogrammierung 4
S RCP Daten aus einem File auslesen, und daraus ein neues Objekt erstellen! Plattformprogrammierung 4
B GMF Editor mit nur einem Connection Tool Plattformprogrammierung 5
T Speichern eines Objectes in einem Editor (mit isDirty) Plattformprogrammierung 6
E eclipse RCP Anwendung programmatisch / aus einem anderen Programme starten? Plattformprogrammierung 8
L RCP View in einem Editor öffnen? Plattformprogrammierung 3
C Texteditor öffnet mit einem Error Plattformprogrammierung 3
K Editor nicht in der 'EditorArea' öffnen, sondern in einem Folder(Layout). Plattformprogrammierung 10
G Verschiedene Farben in einem Treeview Plattformprogrammierung 5
dzim Teileweise Auswahl in einem CheckboxTreeViewer? Plattformprogrammierung 3
T Aus einem View in das andere wecheln. Plattformprogrammierung 13
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
R Aktuelle Datei in Plugin bearbeiten Plattformprogrammierung 2
Farbtopf Tomcat durch anderes Plugin neustarten Plattformprogrammierung 0
Farbtopf Plugin Wunsch Plattformprogrammierung 0
J Charset-Problem nach Plugin-Export Plattformprogrammierung 1
J RCP File Path von selected File in Package Explorer für RCP Plugin Plattformprogrammierung 2
TheWhiteShadow RCP Problem mit Plugin Interaktion Plattformprogrammierung 6
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
C plugin development environment eclipse Plattformprogrammierung 4
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
M RCP Plugin Extension Point ist NULL Plattformprogrammierung 7
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
M Plugin - Property Page - Get IResource in View Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
L RCP Plugin Template erweitern Plattformprogrammierung 2
I Plugin Testen mit Fragment Project Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
A OSGi Plugin als Service exportieren und verwenden Plattformprogrammierung 12
D Plugin - Properties ohne PropertyPage speichern Plattformprogrammierung 11
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
V Eigenständige Applikation als Jar in Plugin einbinden Plattformprogrammierung 2
F [FileLocator] Verzeichnisse im Plugin Plattformprogrammierung 2
L RCP Plugin mit häufig benutzen third libraries Plattformprogrammierung 11
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
F Ecilpse plugin und MWE Workflow: classpath Problem Plattformprogrammierung 12
M RCP Aktivierung eines CommandHandlers, Änderungen in der plugin.xml wirken sich nicht aus... Plattformprogrammierung 2
R Frage zum RCP Plugin-Mechanismus. Plattformprogrammierung 2
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
M RCP Resources Plugin nutzen und erweitern... aber wie? Plattformprogrammierung 6
J Plugin wird nicht mit gestartet Plattformprogrammierung 4
D Team Plugin Erweiterung Plattformprogrammierung 4
L RCP Plugin als Bundle geklarieren? Plattformprogrammierung 3
hdi Frage zu Eclipse Plugin Development Plattformprogrammierung 12
D Canvas auf View in Eclipse PlugIn Plattformprogrammierung 3
M Eclipe RCP-Application oder Plugin Einstieg Plattformprogrammierung 6
hdi Plugin Icon wird nicht angezeigt Plattformprogrammierung 7
H Bibliotheken in Eclipse-Plugin-Projekt verwenden. Plattformprogrammierung 18
T Java Rcp Plugin laden Plattformprogrammierung 4
H Eclipse-Plugin erstellen Plattformprogrammierung 22
hdi Schwierigkeiten mit Plugin für EPF (Eclipse Process Framework) Plattformprogrammierung 3
S Plugin: View beim Button-Klick austauschen Plattformprogrammierung 7
M Fehler bei Plugin Export für eigene Target Platform Plattformprogrammierung 3
hdi Problem bei Eclipse Plugin Export Plattformprogrammierung 9
H Eclipse Plugin Dateihandling Plattformprogrammierung 2
S Plugin Abhängigkeiten/Circle References Plattformprogrammierung 6
G Plugin einbindung Plattformprogrammierung 9
T Erstellen eines "Ersetzten Plugin" aus GEF Plattformprogrammierung 2
S RCP Anwendung nicht weiterladen bei Exception in Plugin Plattformprogrammierung 2
A Eclipse Plugin Programmierung Dateien Refreshen Plattformprogrammierung 2
F Eclipse Plugin - Rückgabewert einer Methode Plattformprogrammierung 4
M Klasse aus PLugin /Fragment anhand von String laden Plattformprogrammierung 3
T Plugin eines bestehenden Editors hinzufügen Plattformprogrammierung 2
R Eclipse RCP - Plugin erstellen Plattformprogrammierung 2
lumo [Eclipse RCP] Plugin OHNE visuals Plattformprogrammierung 7
N Mit Plugin externe Dateien liefern Plattformprogrammierung 6
R Eclipse RCP vs. Plugin Entwicklung Plattformprogrammierung 5
B Eclipse plugin fuer dummys Plattformprogrammierung 11
P ViewPart dynamisch (Install/Deinstall Plugin) anzeigen in Perspektive? Plattformprogrammierung 12
N Eclipse RCP Plugin aus jar starten Plattformprogrammierung 7
M Eclipse Plugin Depedencies auslesen... Plattformprogrammierung 14
reibi Edclipse PlugIn-Entwicklung Plattformprogrammierung 21
N plugin als dependencie Plattformprogrammierung 3
N Benutzen von eigene Plugin im Plugin Plattformprogrammierung 36
N plugin dependencies innerhalb eines projects halten Plattformprogrammierung 11
R Wo/Wie Eclipse Plugin einhängen für Jar-Export? Plattformprogrammierung 14
Spot84 compareeditor in eclipsercp plugin verhält sich komisch Plattformprogrammierung 3
M Plugin wird nicht mehr geladen Plattformprogrammierung 3
M Dateien in PlugIn ansprechen Plattformprogrammierung 12
N einfaches Projekt in Plugin umwandeln Plattformprogrammierung 3
V [erledigt] Eclipse plugin startet nicht Plattformprogrammierung 3
M External JARs in Plugin Plattformprogrammierung 5
N preference page plugin Plattformprogrammierung 3
N programm in plugin umwandeln Plattformprogrammierung 3
N plugin architektur Plattformprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben