2009-07-06 6 views
0

J'ai une liste de pots contenant du pot avec la classe principale requise. je tente de l'exécuter la classe principale:Comment exécuter une autre classe principale pendant runtome et obtenir sa sortie de la console?

public static void runCommandlineMain(String classPathFile, String args[]) throws Exception{ 
    URL[] urls = getJarUrls(classPathFile); 
    URLClassLoader classLoader = new URLClassLoader(urls); 

    Class<?> clazz = classLoader.loadClass("liquibase.commandline.Main"); 
    Method main = clazz.getMethod("main", String[].class); 
    main.invoke(null, new Object[]{args}); 
} 

Mais après manche, j'ai suivi:

Process finished with exit code -1 

et rien de plus. Comment puis-je le résoudre? Et comment sortir la console de cette classe?

Répondre

0

Vous n'avez pas compris votre première question?

Mais, pour répondre à votre deuxième question: « Comment obtenez-vous la sortie de la console »

essayer le StreamGobbler here

0

Je ne suis pas sûr de ce que la question concerne aussi, mais selon le affiché snipped, le processus qui devrait avoir la sortie capturée ne fonctionne que dans un thread différent. Dans ce scénario, vous devriez pouvoir rediriger le flux Sytem.out (ou System.err respectivement).

Appel

System.setOut(new PrintStream(your-output-stream)); 
System.setErr(new PrintStream(your-output-stream)); 

avant d'appeler la classe principale et sa sortie devrait être redirigé vers votre OutputStream personnalisé.

Questions connexes