Je suis en train de créer un outil Java Record/Replay et j'ai besoin de lancer des applications Java à partir de mon application Java principale. Je besoin d'accéder au EventDispatchThread afin d'intercepter les événements et les enregistrer, donc je lance l'application par la réflexion avec (extrait de code simplifié):Lancer une application Java à partir d'une autre application Java
Class<?> app = Class.forName(mainClass);
Method m = app.getMethod("main", new Class[] { String[].class });
m.invoke(null, new Object[] { new String[] {} });
I précédemment charger dynamiquement tous les pots au classpath et l'application se lance presque parfaitement.
Le problème se produit lorsque l'application doit accéder à n'importe quel fichier et le fait avec des chemins relatifs. Parce que l'application est lancée via mon application, le chemin n'est pas le même que celui lancé à partir de son chemin normal et les fichiers ne sont pas trouvés.
Que puis-je faire pour résoudre ce problème? changer dynamiquement l'environnement d'exécution? des idées?
Je vais vérifier comment exécuter le code comme un « Java Agent » et ce qui exactement veux dire. Je n'ai pas compris tes parenthèses, cependant ... – jpsstavares