簡體   English   中英

當PhantomJS嵌入jar文件中時,如何使用phantomjs.binary.path?

[英]How to use phantomjs.binary.path when PhantomJS is embedded inside a jar file?

我正在使用phantomjs進行無頭瀏覽器測試。 我從我的Java文件(MainTest.java)中調用phantomjs。 該代碼在我的本地計算機上運行良好。 我將phantomjs.exe和調用java文件都捆綁在jar文件(tetsPhantom.jar)中。

  • testPhantom.jar
    • phantomjs.exe
    • MainTest.java

在服務器上,嘗試查找phantomjs可執行文件路徑時失敗:

String webDir = LiExportEmails.class.getProtectionDomain().getCodeSource().getLocation().toExternalForm(); // Returns http://myservername.com:8080/testPhatom.jar
System.setProperty("phantomjs.binary.path", webDir);

我也嘗試將其設置為http://myservername.com:8080/testPhatom.jar!phantomjs.exe ,但仍然失敗。

位於與調用方相同的jar文件中的phantomjs的正確路徑應該是什么?

通過使用JNLP Webstart啟動問題中的方法並通過一個更改將其復制到jar外部 ,解決了該問題:

File f = new File ("./phantomjs.exe");
if (!f.exists()) {
  InputStream in = Myclass.class.getClassLoader().getResourceAsStream("phantomjs.exe");
  OutputStream out = new FileOutputStream("./phantomjs.exe");
  IOUtils.copy(in, out);
}
System.setProperty("phantomjs.binary.path","./phantomjs.exe");

我真的認為即使可以通過某種方式解析路徑,也無法從jar文件中執行.exe。 您應該提取phantomjs.exe。

暫無
暫無

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

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