Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > NoSuchMethodError: java.awt.Toolkit.getMenuShortcu


Автор: _Y_ 24.1.2022, 09:31
Возникла страная проблема при попытке работатьс  JAR-ом на чужом компе. В JAR-е программа, которую я написал довольно давно и использовал без проблем. Сейчас пришлось отправить свой комп в ремонт, а сесть на отдолженный чужой.  JAR запускается, но при работе выдаёт вот такую ошибку

Код

D:\andrey\Programs small\ZBush>java -jar ZBush2.jar
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: java.awt.Toolkit.getMenuShortcutKeyMaskEx()I
        at zbush.ZBDocument.commonConstructorEnding(ZBDocument.java:147)
        at zbush.ZBDocument.<init>(ZBDocument.java:92)
        at zbush.ZBush$1.actionPerformed(ZBush.java:116)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.AbstractButton.doClick(Unknown Source)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)



В сети удалось найти только один пост, в котором довольно невнятно (с точки зрения моего плохого знания предмета) сказано, что дело в версии Java. Я проверил, конечно - версия стоит самая новая. Что-то с её установками? Подскажите, пожалуйста.

Не хочется ставить на этот комп среду разработки и решать проблему на уровне кода. Комп-то чужой.

Автор: Старовъръ 25.1.2022, 00:41
NoSuchMethodError всегда значит одно - несовместимость версий. Хочется вызвать метод, а такого нет. Этот метод https://docs.oracle.com/javase/10/docs/api/java/awt/Toolkit.html#getMenuShortcutKeyMaskEx() появился начиная с Java10. Соответственно если использовать Java10 или выше, то должно бы запуститься.

Автор: _Y_ 27.1.2022, 07:41
Старовъръ, спасибо. Действительно так и оказалось. В принципе, на компе стояла последняя Java, но при запуске JAR-а почему-то подцеплялась старая инсталляция Java-8. Вылечилось установкой последней Java-17.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)