我正在尝试创建一个 jar,使人们能够通过此库启动 Web 浏览器驱动程序。 所以这个想法是让一个项目"ToBecomeJar"将chromedriver(没有文件扩展名(作为"drivers"文件夹中的一个项目,并在其代码中使用它作为:
private WebDriver getDriver(){
System.setProperty(CHROME_DRIVER_PROPERTY, "drivers/chromedriver");
driver =new ChromeDriver();
return driver;
}
这里的问题是,当我将这个项目变成一个库时,当然"PathToDriver"在使用时会被当作绝对路径,导致我的新项目需要与带有驱动程序的库完全相同的路径结构。
有什么办法让这个相对吗?
我尝试使用资源文件夹并使用 .getResource 调用资源,但我真的无法让它工作。在研究这个问题时,人们提到它应该变成.getResourceStream,因为它变成了文件以外的东西,但这对我不起作用,因为它不是我尝试使用的文本文件。
尝试使用 'user.dir' 它是 JVM 的环境变量。 它可用于构造驱动程序可执行文件的路径字符串:
private WebDriver getDriver(){
System.setProperty(CHROME_DRIVER_PROPERTY, System.getProperty("user.dir") + "/drivers/chromedriver");
driver = new ChromeDriver();
return driver;
}
可以在应用启动期间将所需资源从 jar 提取到临时文件夹,然后指向该文件夹以获取正确的驱动程序。