我需要一種方法來在我的應用程序中運行另一個Java應用程序。我想要將它的輸出複製到JTextArea中並通過JTextBox發送輸入。在Java程序中運行另一個Java程序並獲取輸出/發送輸入
回答
取決於。
您可以使用自定義的URLClassLoader
加載第二個應用程序jar並直接調用主類main
方法。顯然,這個問題是需要有一個從程序輸出;)
另一個解決辦法是使用一個ProcessBuilder
通過InputStream
問題推出一個java程序和讀取輸出這裏試圖找到java可執行文件。一般來說,如果它在路上,你應該沒問題。
你可以看看this作爲如何讀取輸入流
更新,例基線例如
這是我的「輸出」的程序,產生輸出...
public class Output {
public static void main(String[] args) {
System.out.println("This is a simple test");
System.out.println("If you can read this");
System.out.println("Then you are to close");
}
}
這是我的 「閱讀器」 程序,讀取輸入...
public class Input {
public static void main(String[] args) {
// SPECIAL NOTE
// The last parameter is the Java program you want to execute
// Because my program is wrapped up in a jar, I'm executing the Jar
// the command line is different for executing plain class files
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "../Output/dist/Output.jar");
pb.redirectErrorStream();
InputStream is = null;
try {
Process process = pb.start();
is = process.getInputStream();
int value;
while ((value = is.read()) != -1) {
char inChar = (char)value;
System.out.print(inChar);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
您還可以結賬Basic I/O獲取更多信息
問題是我對Java有很好的理解,但是我沒有ProcessBuilder的經驗或者對InputStreams有太多的經驗。在一個側面說明..你在哪裏學習更多的Java?我已經準備好2本書,並在線觀看/閱讀。 – Taketheword
*「你在哪裏學習更多的Java?」*與本網站無關,你沒有問我,但我會冒險回答。我主要從Java教程學習,在這個網站上找到的答案,以及在這個網站上詢問(回答)問題。當你的同事指着你並大笑時,對這個網站上一個問題的回答可能非常具有啓發性,然後用難以理解的細節描述你答案中的錯誤。 ;) –
是的,這個網站上的答案是非常有幫助的,但我需要一般的幫助學習。本網站有助於解釋要使用的內容,而不是如何使用它。 – Taketheword
- 1. 如何運行Java程序並在PHP中獲取輸出?
- 2. 獲取I /從另一個java程序運行Java程序Ø
- 3. 編譯,運行並獲得java程序中的輸出java程序
- 4. 在Java程序運行時從PHP輸入Java程序
- 5. 從另一個獲得正在運行的Java程序的輸出
- 6. Java程序運行,但沒有輸出
- 7. 從文件輸入運行Java程序
- 8. Java在運行bash命令時輸入並獲取輸出
- 9. Java輸入程序
- 10. 無法從運行java程序的shell腳本獲取輸出
- 11. 以C++程序輸出爲Java輸入
- 12. 在Ruby中調用Java程序並獲取輸出
- 13. 在PHP中調用Java程序並獲取輸出
- 14. 通過bash獲取Java程序的輸入和輸出
- 15. Java線程:運行一個簡單的java線程程序輸出混淆
- 16. 如何獲取一個程序的輸出並將其用作另一個程序的輸入?
- 17. 如何從另一個java程序運行java程序?
- 18. 從另一個Java程序運行java程序
- 19. 無法從另一個Java程序運行java程序
- 20. 在程序運行時可以獲取程序的輸出嗎?
- 21. Java:最後運行另一個程序
- 22. 在Java程序中執行另一個Java程序時
- 23. 在Java eclipse中自動發送輸出到程序參數
- 24. 當輸入空白行時退出java程序的輸入
- 25. Java - 從程序中獲取輸出...命令行參數?
- 26. Java程序讀取.csv並給出排序的.xml輸出
- 27. 運行的.jar從java程序參數,並得到輸出
- 28. 在另一個程序中運行Java程序會給出錯誤
- 29. java runtime.getruntime()從執行命令行程序獲取輸出
- 30. Java程序的輸出
您是否需要運行整個程序?你可以從程序中的其他代碼庫執行適當的Java代碼嗎? – Bill
您是否控制其他應用程序的來源?什麼是其他應用程序?順便說一句 - 沒有像JTextBox這樣的東西 - 請複製/粘貼這些東西。 –
我需要運行並控制整個程序並接收其輸出/發送輸入 – Taketheword