文章版權由做者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/前端
在某個項目中須要考慮使用java後臺調用由C#編寫的切圖程序(exe),而且前端可以獲取到切圖的進度和相關描述信息。java
a.首先改造切圖程序爲接受參數從Main函數傳遞。數組
b.編寫java後臺傳參調用exe的函數。函數
c.解決通訊問題。線程
C#中的入口程序爲Main函數,其中Main函數默認是沒有參數的,若是添加參數,其只支持一個String數組參數,入口改寫以下:設計
將須要傳入的參數寫在args數組中,後續業務邏輯上所以作相關改寫便可。對象
Java中能夠利用Process類進行對exe或者是命名行cmd進行調用。具體例子以下:blog
其中exec爲傳參調用,而waitFor函數爲當前線程等待函數,並可獲取到由該 Process 對象表示的進程終止後返回的值。進程
若是exe中不設置返回參數,則默認執行正確爲0。get
a.前端發出請求,等待迴應。
b.後臺接受請求,調用起exe。
c.exe執行完後將信息寫入到指定文本中。
d.java端監聽程序執行完畢後,獲取指定文本。
e.解析文本中的信息。信息能夠按照自定義規則組織,傳達所需表示的含義。
f.將解析後的數據返回給前端。
優勢:
前端無需輪詢,等待返回結果便可。
缺點:
會出現請求超時問題,而且沒法知道exe執行的目前狀態。
a.前端發出請求,並開始定時觸發程序狀態查詢請求。
b.後臺接受請求,調用起exe。
c.exe執行過程、完畢均向指定文本中寫入信息。
d.前端狀態查詢請求,不斷讀取指定文本中的狀態信息,在前端進行相關展現。
優勢:
規避請求超時問題,能夠實時獲取程序進程。
缺點:
前端須要進行定時狀態輪詢請求。
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/