0
它可以打包的.exe文件的Java罐內和這個jar添加到項目中展開組件比使用運行此exe .EXE:運行通過使用應用程序服務器的
Runtime.getRuntime().exec();
我試圖運行這個exe文件後,通過使用類加載器得到它在glassfish域中的路徑,但實際上這個exe文件被封裝在jar文件中,防止windows執行它。
它可以打包的.exe文件的Java罐內和這個jar添加到項目中展開組件比使用運行此exe .EXE:運行通過使用應用程序服務器的
Runtime.getRuntime().exec();
我試圖運行這個exe文件後,通過使用類加載器得到它在glassfish域中的路徑,但實際上這個exe文件被封裝在jar文件中,防止windows執行它。
你將不得不從罐子第一解壓:
FileOutputStream fos=null;
InputStream is = null;
try
{
is = this.getClass().getResourceAsStream("path to your exe inside the jar");
fos = new FileOutputStream("destination path on host file system");
byte[] buffer = new byte[1024];
int read;
while ((read = is.read(buffer)) > -1)
fos.write(buffer, 0, read);
}
finally
{
if (is != null)
is.close();
if (fos != null)
fos.close();
}
然後,Runtime.getRuntime().exec()
主機文件系統上運行它。
提取是開銷,因爲它包含大量相關的dll和資源。我更喜歡將exe和相關的dll添加到項目中(不使用jar)而不是提取它。 – 2014-09-05 17:00:49