#java #selenium #maven #spotify #executable-jar
#java #селен #maven #spotify #исполняемый файл-jar
Вопрос:
Я работал над программой, и я, наконец, решил попробовать экспортировать ее и запустить, поэтому я начал использовать Launch4j для создания оболочки jar. Всякий раз, когда я пытаюсь запустить его, либо через Launch4j, либо с помощью файла .bat, он не запускается.
В Eclipse программа работает нормально. Когда я нажимаю test wrapper в Launch4j (используя jdk-15.0.1 в качестве jre), я вижу в журнале, что есть из- NullPointerException
за java.net.URL.toString()
.
Моя программа зависит от Spotify API, и в ней также есть некоторый код Selenium. Я не слишком уверен, что вызывает эту проблему, поскольку весь код отлично работает в Eclipse, и в моем коде нигде нет попытки получить строку с нулевым URL.
Вот ошибка, которую я вижу в журнале:
java.lang.NullPointerException: Cannot invoke "java.net.URL.toString()" because "url" is null
at java.desktop/sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:653)
at java.desktop/sun.awt.SunToolkit.getImage(SunToolkit.java:689)
at views.view.initComponents(view.java:419)
at views.view.<init>(view.java:123)
at views.view$1.run(view.java:95)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Комментарии:
1. Итак, я смог устранить проблему, создав новый java-проект и скопировав и вставив код. Я не слишком уверен, в чем проблема, но теперь она работает!
2. Я подозреваю, что это была проблема с ресурсом изображения, не находящимся в ожидаемом месте в JAR. Однако нет четких доказательств, и поскольку проблема «исчезла» (и вы точно не знаете, почему), это должно быть закрыто как невоспроизводимое.
Ответ №1:
Сегодня со мной произошло то же самое, и в моем случае проблема заключалась в том, что в каталоге была первая буква в верхнем регистре, а в Java я поместил ее в нижний регистр.
Когда я правильно переименовал каталог, я экспортировал его снова и больше не получал ошибку.