看板 java 關於我們 聯絡資訊
各位好 我有一支java的程式放在某台設備上 該台設備有可能是linux or win的平台 使用者需要呼叫這支java去做某些事情後,並把結果回覆 但對方的程式可能使用非java語言,有可能是C、C#... 那他該如何來呼叫我,讓我幫他做一些事情後 並把結果回傳給他呢? 假設他通知我001,我去做action001, 以此類推。 我目前想到的是很笨的方法,IO。 利用檔案來互傳資料,但是就我認知 應該避免不必要的IO動作 所以不知道有沒有其它的建議讓我參考看看 感謝各位!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.52.10.190 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1432797108.A.D18.html
omidofor: 直接用system call,然後讀standard output 05/28 15:20
Killercat: 基本上最有效率的就是用C cross process lib 05/28 16:14
Killercat: 然後用JNI去呼叫。不過已Java的架構來講,由於無法直接 05/28 16:14
Killercat: 碰觸到記憶體位置,其實你會發現這不會省工.... 05/28 16:14
Killercat: 最多人用的應該是boost的interprocess lib 05/28 16:15
Killercat: 我的案例的是在CPython跟C++之間sync 05/28 16:15
Killercat: http://tinyurl.com/ptshloe 05/28 16:16
Killercat: Java的話 就把它包一層JNI 再用jobject傳回java層吧 05/28 16:17
Killercat: 老實講pipeline效能也沒差到哪去,沒必要捨近求遠 05/28 16:17
Killercat: pipeline/AF_UNIX socket效能都不會太糟糕的 05/28 16:18