簡體   English   中英

Java調用外部進程-exe

[英]Java calling an external process - exe

我正在構建一個Java應用程序,該應用程序有時使用外部exe。 在這一點上,我試圖將這個exe作為某種庫添加,可以在流程調用中使用,因此用戶不必安裝它。

此exe文件是一個命令行工具,可產生一些輸出,該輸出將由應用程序進一步處理。

所以我的問題是,如何在Java應用程序中包含exe文件,而不是將其作為系統進程來調用。 如果該exe例如位於最終的lib文件夾中,則Java應用將在其中獲取並執行該文件,這也是可以接受的。

我希望情況清楚,感謝您的幫助。

Java通過以下兩種方式與其他(本機)代碼進行交互:

  • 通過Java本機接口(JNI)專門編碼的庫
  • 通過使用Runtime.getRuntime().exec(...)分叉子進程來訪問外部工具
  • 通過網絡通訊

在第一種情況下,將JNI庫包含在Java程序中很有用。 將其作為類資源包含在JAR文件中是可以想到的,但是這與JAR文件的想法(持有類和資源)背道而馳。 您更有可能將庫(針對所有目標平台)與某種安裝包(例如InstallAnywhere或其他)捆綁在一起

在第二種情況下,將二進制文件包含在Java程序中(即JAR文件中)是沒有用的。 相反,它很可能具有(應該具有)自己的安裝過程,並且您的Java代碼應使用適當的命令行(PATH)查找可執行文件。

我認為第三種情況不相關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM