Java程序在从.jar解压缩的selenium驱动程序上抛出错误

时间:2017-08-10 17:31:46

标签: java selenium intellij-idea jar runtime-error

我在从.jar文件中为Selenium 解压缩实现自动chromedriver时遇到问题。

具有

    ClassLoader classLoader = getClass().getClassLoader();
    URL resource = classLoader.getResource("resources/drivers/chromedriver.exe");
    File f = new File("Driver");
    if (!f.exists()) {
        f.mkdirs();
    }
    File chromeDriver = new File("Driver" + File.separator + "chromedriver.exe");
    if (!chromeDriver.exists()) {
        try {
            chromeDriver.createNewFile();
            org.apache.commons.io.FileUtils.copyURLToFile(resource, chromeDriver);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return chromeDriver.getAbsolutePath();

在一个类中,将路径返回到可执行驱动程序,该驱动程序在

中使用
System.setProperty("webdriver.chrome.driver", the_path);

打印路径给了我明显正确的驱动程序文件路径,并且正在给定目录下创建文件。 然而,在运行.jar时会出现以下问题

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
(...)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)

但仅在触发使用驱动程序的类时。

代码本身是否有任何改变,或者我在compilepath或类似的东西中遗漏了一些关键的东西?

非常感谢任何帮助!

0 个答案:

没有答案