Sto facendo uno strumento Java Record/Replay e ho bisogno di avviare le applicazioni Java dalla mia app Java principale. Ho bisogno di accedere al EventDispatchThread al fine di intercettare gli eventi e li registra, quindi sto avviando l'applicazione attraverso la riflessione con (frammento di codice semplificato):Avviare un'applicazione java da un'altra applicazione java
Class<?> app = Class.forName(mainClass);
Method m = app.getMethod("main", new Class[] { String[].class });
m.invoke(null, new Object[] { new String[] {} });
ho già caricare dinamicamente tutti i vasi al classpath e l'applicazione si avvia quasi perfettamente.
Il problema si verifica quando l'applicazione deve accedere a qualsiasi file e lo fa con percorsi relativi. Poiché l'applicazione viene avviata attraverso la mia applicazione, il percorso non è uguale a quello lanciato dal suo percorso normale e i file non vengono trovati.
Cosa posso fare per risolvere questo problema? cambia dinamicamente l'ambiente di esecuzione? qualche idea?
Vado a controllare come eseguire il codice come un "agente Java" e che cosa esattamente si intende. Non ho capito la tua parentesi, però ... – jpsstavares