Признаюсь сразу, формирование java-окружения не самая сильная моя сторона...
Пробую запустить приложение HermesJMS (1.14) на линуксе.
openjdk version "11.0.23" 2024-04-16
При запуске получаю ошибку:
...
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: sun/reflect/Reflection
at com.jidesoft.plaf.UIDefaultsLookup.getCallerClassLoader(Unknown Source)
at com.jidesoft.plaf.UIDefaultsLookup.get(Unknown Source)
at com.jidesoft.swing.ContentContainer.updateUI(Unknown Source)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:86)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:109)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:117)
at com.jidesoft.swing.ContentContainer.<init>(Unknown Source)
at com.jidesoft.action.DefaultDockableBarDockableHolder.createContentContainer(Unknown Source)
at com.jidesoft.action.DefaultDockableBarDockableHolder.initFrame(Unknown Source)
at com.jidesoft.docking.DefaultDockableHolder.<init>(Unknown Source)
at com.jidesoft.action.DefaultDockableBarDockableHolder.<init>(Unknown Source)
at hermes.browser.HermesBrowser.<init>(HermesBrowser.java:323)
at hermes.browser.HermesBrowser$3.run(HermesBrowser.java:227)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
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(Native Method)
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)
Caused by: java.lang.ClassNotFoundException: sun.reflect.Reflection
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
... 26 more
В гуглах нашел, что класс Reflection устарел и исключен...
Предполагаю, что мой jdk уже слишком свежий для приложения.
Нашел rt.jar, в котором находится этот класс sun/reflect/Reflection, попробовал просто в стартовом скрипте /opt/HermesJMS/bin/hermes.sh перед последней строчкой добавить
LOCALCLASSPATH=/opt/rt.jar:$LOCALCLASSPATH
не помогло.
9-м и 10-м jdk - этой ошибки нет, приложение пробует запуститься через Х, но сразу просто завершается
Могу ли я каким-то образом добавить эту джарку в своё окружение?