如何获取位于src / main / resources

时间:2017-03-01 06:41:52

标签: java maven

我正在为我们的一个项目做自动化,因为我编码如下:

public void m() throws FileNotFoundException, IOException {
        System.setProperty("webdriver.chrome.driver",Thread.currentThread().getContextClassLoader().getResource("chromedriver.exe").getFile());
        System.out.println("123");
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.google.com");
    }

当我在eclipse中执行时它正在工作。但是当我使用maven生成的jar测试时,它给出了一个例外:

线程中的异常" main" java.lang.IllegalStateException:驱动程序可执行文件不存在:C:\Users\rkowsu\Desktop\jar\file:\C:\Users\UU1\Desktop\jar\resources-part-0.0.1-SNAPSHOT.jar!\chromedriver.exe

有什么不对吗?

2 个答案:

答案 0 :(得分:1)

如果您的应用程序的 public function suggetions(){ header('Content-type: application/json'); $arr=Array(); $arr[] = 'tag111'; $arr[] = 'tag222'; $arr[] = 'tag333'; echo json_encode($arr); } 目录中有chromedriver.exe,那么它将被打包到您的jar文件中。

不能从那里执行。

查看How to work with chrome driver in Maven的答案。

答案 1 :(得分:0)

对于System.setProperty(),您应该提供"webdriver.chrome.driver"relative\path\to\exe。如果您的项目结构如下所示:

src
    main
          java
             App.java
          resources
             chromedriver.exe

您应该使用System.setProperty("webdriver.chrome.driver", "src" + File.separator + "main" + File.separator + "resources" + File.separator +"chromedriver.exe")

无论你是否从jar运行,都可以找到.exe。