嘗試使用Runtime.getRuntime()。exec()執行Java jar
使用由Process返回的實例exec()
Process cat = Runtime.getRuntime().exec('java -jar C:/cat.jar C:/test.txt');BufferedInputStream catOutput= new BufferedInputStream(cat.getInputStream());int read = 0;byte[] output = new byte[1024];while ((read = catOutput.read(output)) != -1) { System.out.println(output[read]);}
參考:http ://docs.oracle.com/javase/7/docs/api/java/lang/Process.html
默認情況下,創建的子進程沒有自己的終端或控制臺。其所有標準I /O(stdin,stdout,stderr)操作都將重定向到父進程,在該父進程中,可以通過使用方法getoutputStream(),getInputStream()和getErrorStream()獲得的流來訪問它們。
http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#getInputStream()
getInputStream()返回連接到子流程正常輸出的輸入流。
解決方法在我正在處理的項目中,我需要執行資源文件夾(位于類路徑中)中的腳本。我只是在測試最終的腳本功能,因為我在Windows上,所以我需要一種將文件輸出到STDIN的方法,因此我創建了一個簡單的cat.jar程序來克隆unixscat命令。
因此,當我執行“ java -jar cat.jar someFile.txt”時,它將輸出文件到stdout。我敢肯定,我做的事情有不同的方式。
無論如何,我想從主Java程序運行該JAR。我在做
Runtime.getRuntime().exec('java -jar C:/cat.jar C:/test.txt');
我嘗試過將正斜杠切換為反斜杠并轉義了-沒有用。什么都沒有發送到標準輸出。
在哪里,如果我自己運行貓罐,我會將文件定向到標準輸出。
我在這里做錯了什么?這是足夠的信息嗎?
相關文章:
1. 運行python程序時出現“應用程序發生異?!钡膬却驽e誤?2. spring-mvc - spring-session-redis HttpSessionListener失效3. 在mac下出現了兩個docker環境4. 利用IPMI遠程安裝centos報錯!5. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]6. javascript - 在 model里定義的 引用表模型時,model為undefined。7. javascript - node得到req不能得到boolean8. python 正則表達式提取9. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。10.排行榜spring-mvc - spring-session-redis HttpSessionListener失效 1. 運行python程序時出現“應用程序發生異常”的內存錯誤? 2. 測試自動化html元素選擇器元素ID或DataAttribute [關閉] 3. 利用IPMI遠程安裝centos報錯! 4. 在mac下出現了兩個docker環境 5. IOS app應用軟件的id號怎么查詢?比如百度貼吧的app-id=477927813 6. 淺談Vue使用Cascader級聯選擇器數據回顯中的坑 7. python 正則表達式提取 8. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。 9. 正在使用electron和node.js做桌面應用,需要實時監聽是否有網絡連接,node或者electron是否可以做到 10.

網公網安備