2017-03-06 38 views
0

Java運行exe文件,我不知道這是可能的,我想跑從我的Java程序的命令行一個Windows EXE應用程序 - 像在Linux

Process process = Runtime.getRunTime().exec("myapp.exe --params"); 

美中不足的事情是,我會喜歡運行在OS X或Linux環境中調用exe的java應用程序。

我想知道是否有人對此做過或對此有何建議?謝謝

編輯:謝謝你的迴應。我想補充一點,我可能不想用wine來運行exe文件,並且可能會想要在exe文件周圍創建一些類型的包裝來直接從java調用dll中的函數。我之前沒有這樣做,並想知道是否有任何指示。

+1

我不認爲這樣的代碼會工作。您可以嘗試讓Java啓動[Wine](https://wiki.winehq.org/Main_Page),然後啓動.exe。 – Pimich

+1

嘗試調用wine應用程序將myapp.exe作爲參數傳遞給酒 –

+1

這似乎不是一個很好的設計選擇。爲了能夠在Linux中運行windows exe,你至少需要安裝Wine。然後,您的應用程序將取決於您的用戶可能或可能無法訪問的其他第三方應用程序的可用性。 – scrappedcola

回答

7

exe文件有一個特定的,僅限於Windows的格式,稱爲Portable Executable (PE)。它與Linux用於可執行文件的格式不兼容,更不用說兩個系統之間的系統調用差異。

不能在Linux上運行exe文件,無論它是否從Java運行。

如果你真的需要它來工作,你有兩個選擇:

  • WINE(或類似的工具)的形式使用Linux的一個Windows兼容層
  • 重新編譯EXE爲Linux