Загрузка файла JAR Steelseries в палитру Swing

Я только начал использовать NetBeans для моего проекта, и мне нужен был датчик в моем GUI. Я наткнулся на Steelseries, которая выглядит действительно многообещающе, и скачал этот файл JAR:

http://www.java2s.com/Code/Jar/s/DownloadSteelSeries3926jar.htm

Я создал проект Java, добавил к нему библиотеку и добавил палитру Swing. Некоторые бобы, как Lightbulb, Led, а также TrafficLight работать нормально; но когда я выбираю датчик, я получаю эту ошибку:

"Невозможно загрузить класс компонента eu.hansolo.steelseries.extras.Radar из файла JAR. Сам класс найден, но возникла проблема с его инициализацией, например, из-за исключения в статическом инициализаторе или сбоя при загрузке дополнительного класса, необходимого для класс компонентов."

Трассировка стека исключений следующая:

java.lang.NoClassDefFoundError: org/pushingpixels/trident/ease/TimelineEase
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.netbeans.modules.form.project.ClassPathUtils.loadClass(ClassPathUtils.java:114)
    at org.netbeans.modules.form.MetaComponentCreator$5.run(MetaComponentCreator.java:1450)
    at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:293)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138)
    at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98)
    at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94)
    at org.openide.util.Mutex.readAccess(Mutex.java:250)
    at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:276)
    at org.netbeans.modules.form.MetaComponentCreator.prepareClass(MetaComponentCreator.java:1446)
    at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:258)
    at org.netbeans.modules.form.MetaComponentCreator.precreateVisualComponent(MetaComponentCreator.java:298)
    at org.netbeans.modules.form.HandleLayer$NewComponentDrag.init(HandleLayer.java:3369)
    at org.netbeans.modules.form.HandleLayer$NewComponentDrag.<init>(HandleLayer.java:3361)
    at org.netbeans.modules.form.HandleLayer$NewComponentDropListener.dragEnter(HandleLayer.java:3658)
    at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:358)
    at sun.awt.dnd.SunDropTargetContextPeer.processEnterMessage(SunDropTargetContextPeer.java:331)
    at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEnterEvent(SunDropTargetContextPeer.java:799)
    at sun.awt.dnd.SunDropTargetContextPeer$EventDispatcher.dispatchEvent(SunDropTargetContextPeer.java:767)
    at sun.awt.dnd.SunDropTargetEvent.dispatch(SunDropTargetEvent.java:48)
    at java.awt.Component.dispatchEventImpl(Component.java:4746)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.retargetMouseEnterExit(Container.java:4676)
    at java.awt.LightweightDispatcher.trackDropTargetEnterExit(Container.java:4625)
    at java.awt.LightweightDispatcher.trackMouseEnterExit(Container.java:4638)
    at java.awt.LightweightDispatcher.processDropTargetEvent(Container.java:4591)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4461)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2750)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.pushingpixels.trident.ease.TimelineEase
    at org.netbeans.modules.form.project.ProjectClassLoader.findClass(ProjectClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 52 more

1 ответ

Решение

SteelSeries, первоначально размещенный на Kenai, переехал в GitHub, Проект зависит от Trident библиотека, как видно здесь и в pom.xml,

Вы также знаете, почему Steelseries в библиотеке отсутствуют те необходимые модули?

Ссылка, которую вы упоминаете, ссылается на предварительно созданные файлы JAR, каждый из которых исключает зависимые lib каталог, увиденный здесь или ссылка на артефакт, приведенная здесь. Точный подход в будущем будет зависеть от вашего плана управления конфигурацией программного обеспечения.

Другие вопросы по тегам