PDA

Visualizza la versione completa : (java) Blocco try catch non funzionante


abcd1000
16-12-2004, 12:50
Ho una classe java con il seguente codice



String fileAbsPath = "/team/manneschi/IBM/wsappdev51/workspace/Test/programs/M-Code.jar"
String mainClass = "it.mcode.BuildCode";
String[] command = { "java", "-cp", "\"" + fileAbsPath + "\" ", mainClass };
Runtime rt = Runtime.getRuntime();
try {

Process proc = rt.exec(command);
} catch (Exception e) {
e.printStackTrace();
} catch (Throwable t) {
t.printStackTrace();
}


Quando questo codice viene eseguito, viene aperta una shell del dos o di linux a seconda del sistema operativo e viene eseguita questo comando

java -cp "/team/manneschi/IBM/wsappdev51/workspace/Test/programs/M-Code.jar" it.mcode.BuildCode

Quando questo comando lo eseguo io da shell mi viene data la seguente eccezione:

Exception in thread "main" java.lang.NoSuchMethodError
at BuildCalculator.<init>(BuildCalculator.java:83)
at BuildCalculator.main(BuildCalculator.java:627)

Volevo sapere, perchè quando eseguo il comando:

java -cp "/team/manneschi/IBM/wsappdev51/workspace/Test/programs/M-Code.jar" it.mcode.BuildCode


dalla classe java (quindi non direttamente dalla shell), questa eccezione non viene presa dal blocco try catch che ho inserito?

netarrow
16-12-2004, 17:00
quando usi la classe Runtime, Process ecc... per vedere il loro output devi fare un codice tipo questo:



...
int i = 0;
Process s = rt.exec(c);
while((i = s.getInputStream().read()) != 0) {
System.out.print((char)i);
}
...


o circa; il problema potrebbe essere quello, oppure l'errore viene generato e l'esecuzione terminata prima che possa partire il processo dalla classe.

:ciauz:

Loading