0
這就是我想做的事:從一個java文件,該文件是通過運行時加載的啓動JAR文件... EXEC(「」)觸發方法
我需要從開始出兩個JAR文件的一個java文件,我想從第一個啓動的jar文件中調用一個方法,當我從第二個jar文件讀取特定狀態時。我想出瞭如何從jar文件中讀取outsputstream。 (我也知道,它不是打印出來的jar文件,而是jar文件中的類,我只是用這種方式來描述問題,以清楚地解釋我使用的是一個java文件,其中我啓動了兩個jar文件)
long l = System.currentTimeMillis();
Process theProcess1 = Runtime.getRuntime().exec("java -jar \"C:/test.jar\"");
inStream = new BufferedReader(new InputStreamReader(theProcess1.getInputStream()));
...
我現在可以讀取jar文件的輸出。
關於一個特殊的關鍵字,我希望首先啓動的jar運行某個方法(非靜態)。
例如爲:
if(theProcess2 output a certain statuscode)
{
start a certain Method from executed jar file "in" theProcess1
}
我認爲它可以通過使用theProcess1輸出是可能的,但我不知道如何閱讀JAR文件此流。 (JAR文件中不知道它是通過Java文件開始。
什麼想法?
嘿,謝謝。我需要在單獨的虛擬機中運行兩個罐子。我認爲一定可以使用Process類的輸出流?但是我怎樣才能在我的jar文件中將它用作輸入流? – gemorra
這是一個硬約束,但你可以嘗試在這裏給出的答案的方法http://stackoverflow.com/questions/1781091/java-how-to-load-class-stored-as-byte-into-the-jvm從字節加載一個類。我認爲你應該通過使用RMI來重新考慮你的設計(或者其他遠程方法調用策略)。 –
對不起,我剛剛意識到我可能已經被你的問題表達式弄糊塗了。你想要一個Java程序對另一個Java程序的控制檯輸出作出反應嗎? –