Ich mache ein Java-Record/Replay-Tool und ich muss Java-Anwendungen von meiner Java-App starten. Ich brauche den Zugang zum EventDispatchThread, um die Ereignisse abzufangen und speichert sie, so dass ich die Anwendung durch Reflexion mit (Code-Schnipsel vereinfacht) Start:Starten Sie eine Java-Anwendung von einer anderen Java-Anwendung
Class<?> app = Class.forName(mainClass);
Method m = app.getMethod("main", new Class[] { String[].class });
m.invoke(null, new Object[] { new String[] {} });
ich vorher alle dynamisch laden die Gläser auf dem Classpath und die Anwendung startet fast perfekt.
Das Problem tritt auf, wenn die Anwendung auf jede Datei zugreifen muss und dies mit relativen Pfaden tut. Da die Anwendung über meine Anwendung gestartet wird, ist der Pfad nicht identisch mit dem Pfad, der von seinem normalen Pfad gestartet wird, und die Dateien werden nicht gefunden.
Was kann ich tun, um dieses Problem zu lösen? dynamisch die Ausführungsumgebung ändern? irgendwelche Ideen?
Ich werde überprüfen, wie Sie den Code als „Java-Agenten“ laufen und was das genau meint. Ich habe deine Klammer jedoch nicht verstanden ... – jpsstavares