2013-08-07 30 views
0

。我使用Eclipse創建了一個可運行的Jar。 IEDriverServer.exe存在於Jar中。我正在將IEDriverServer.exe作爲項目的資源。WebDriver:我無法設置IEDriverServer.exe在Runnable Jar中的路徑

的下面一行代碼

System.setProperty("webdriver.ie.driver", "C:/Folder1/RunnableJar.jar/IEDriverServer.exe"); 

拋出Driver executable doesn't exist in the following path

我已經把IEDriverServer.exe放在項目的bin文件夾中。我正在使用下面的代碼行來獲取bin文件夾中存在的IEDriver的路徑。

MainClassName.class.getProtectionDomain().getCodeSource() 
       .getLocation().getPath() + "/IEDriverServer.exe"; 

如果我從Eclipse運行代碼,那麼路徑是存在於bin文件夾中的IEDriverServer的路徑。如果我出口項目作爲一個運行的JAR那麼路徑,如下圖所示

C:/Folder1/RunnableJar.jar/IEDriverServer.exe

如果我從Eclipse運行它,它工作正常。

如果我將它作爲jar運行,它會引發異常。

我想知道從Runnable jar中設置IEDriverServer.exe屬性的方法。

+1

提取的EXE文件到一個臨時目錄,並從那裏運行它... – AKDADEVIL

+0

@AKDADEVIL爲什麼我需要提取罐?我只是想運行它。並使用Jar中的IEDriverServer.exe。 –

+5

很好,如果你找到一種方法直接從Windows下的ZIP文件中運行EXE文件,請成爲我的客人,並在這裏解釋它... – AKDADEVIL

回答

2

你不能直接從jar運行exe文件。您只能編寫一個方法,將您的exe文件解壓到臨時文件夾,然後將您的System.setProperty設置爲該路徑值。

你可以找到一些代碼示例there

0

這似乎是沒有辦法的exe直接從Windows平臺上的一個瓶子運行。

正如其中一個答案所述,最好的方法是從jar中提取exe到臨時目錄並設置該目錄的屬性路徑。

以下鏈接可能會幫助其他人解決同一問題。

Link1

Link2

Link3