您好,登錄后才能下訂單哦!
今天小編給大家分享一下java怎么調用外部程序的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在一個java應用中,可能會遇到這樣的需求,就是需要調用一些外部的應用做一些處理,比如調用excel,然后在繼續程序的運行。
下面就開始進入java調用外部程序的一些演示,讓java應用更加靈活。
Runtime.getRuntime().exec("notepad.exe");
記事本被打開了是吧。
Runtime runtime=Runtime.getRuntime(); String[] commandArgs={"notepad.exe","c:/boot.ini"}; runtime.exec(commandArgs);
現在不單單打開了記事本,而且還裝載了boot.ini文件是吧。
現在已經完全解決了調用外部程序的問題,不是嗎,但是大家會發現exec方法是有返回值,那么繼續我們的演示吧。
Runtime runtime=Runtime.getRuntime(); String[] commandArgs={"notepad.exe","c:/boot.ini"}; Process process=runtime.exec(commandArgs); int exitcode=process.waitFor(); System.out.println("finish:"+exitcode);
執行上面的代碼以后發現不同的地方了嗎,waitFor會使線程阻塞,只有外部程序退出后才會執行System.out.println("finish:"+exitcode);
這個功能很有用是吧,因為多數時候你都需要等待用戶處理完外部程序以后才繼續你的java應用。
Runtime runtime=Runtime.getRuntime(); String[] commandArgs={"notepad.exe","c:/boot.ini"}; final Process process=runtime.exec(commandArgs); new Thread(new Runnable(){ @Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) {} process.destroy(); }}).start(); int exitcode=process.waitFor(); System.out.println("finish:"+exitcode);
這個演示稍微復雜了一些,如果你等待5秒,就會發現記事本自動關閉了,是的,這個就是destroy方法的作用,強制關閉調用的外部程序。
不用我解釋了吧,這是非常有用的方法。
最后的說明:ProcessBuilder這個1.5新增的類也可以完成同樣的任務,Runtime就是調用了這個類。
以上就是“java怎么調用外部程序”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。