Создание и использование фляги с нетекстовыми ресурсами - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь создать банку, которая позволит людям запускать драйверы веб-браузера через эту библиотеку.Таким образом, идея состоит в том, чтобы один проект "ToBecomeJar" имел chromedriver (не имеет расширения файла) как элемент в папке "drivers" и использовал его в своем коде как:

private WebDriver getDriver(){
    System.setProperty(CHROME_DRIVER_PROPERTY, "drivers/chromedriver");
    driver =new ChromeDriver();

    return driver;
}

Проблема здесьв том, что когда я превращаю этот проект в библиотеку, разумеется, «PathToDriver» будет использоваться как абсолютный путь при использовании, что приведет к тому, что моему новому проекту потребуется структура пути, точно такая же, как в библиотеке с драйвером.

Есть ли способ сделать этого родственника?

Я пытался работать с папкой ресурса и вызывать ресурс с помощью .getResource, но мне действительно не удается заставить его работать.При взгляде на это люди отмечают, что он должен стать .getResourceStream, поскольку он становится чем-то другим, а не файлом, но это не работает для меня, поскольку я пытаюсь использовать не текстовый файл.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вы можете извлечь необходимые ресурсы из jar во временную папку во время запуска вашего приложения, а затем указать на эту папку для соответствующих драйверов.

0 голосов
/ 16 октября 2018

Попробуйте использовать 'user.dir', который является переменной среды JVM.Его можно использовать для построения строки пути вашего исполняемого файла драйвера:

private WebDriver getDriver(){
    System.setProperty(CHROME_DRIVER_PROPERTY, System.getProperty("user.dir") + "/drivers/chromedriver");
    driver = new ChromeDriver();
    return driver;
}
...