Исключение Eclipse WindowBuilder во время оценки конструктора «супер»JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Исключение Eclipse WindowBuilder во время оценки конструктора «супер»

Сообщение Anonymous »

Я использую Eclipse IDE for Java Developers 2024-06 и WindowBuilder 1.16.0.202405211736.
Обратите внимание, что на моем рабочем месте чрезвычайно сложно загрузить Eclipse IDE, и каждый раз выпущена новая версия. Мне нужно найти нужных людей, чтобы они позволили мне загрузить последнюю версию. Я надеюсь, что когда выйдет следующая версия, то есть Eclipse 2024-12, мне будет разрешено ее установить. Поэтому я надеюсь найти решение, которое не потребует обновления Eclipse до последней версии.
Версия Java рабочей области — 1.8_201, поскольку приложение создано с использованием Java 8, и в настоящее время это невозможно изменить.
У меня не было проблем при работе с Swing Designer, пока я не изменил свой код, чтобы использовать класс javax.imageio.ImageIO< /code> для создания изображений из файлов, содержащих изображения GIF, PNG и JPEG. Ранее код не использовал ImageIO, вместо этого он создавал массив байтов из содержимого файла и создавал javax.swing.ImageIcon из байта и извлек изображение из ImageIcon. (Обратите внимание, что это устаревший код, который я унаследовал.)
Код содержит классы, расширяющие компоненты Swing, например. класс QtPanel расширяет класс JPanel. (Опять же, унаследованный код.)
Мое приложение состоит из «экранов», каждый из которых по сути представляет собой QtPanel.
Когда я откройте такой экран в WindowBuilder, он изначально отображает исходный код [Java], но когда я нажимаю на вкладку Дизайн, я получаю следующую ошибку.
Изображение

Вот трассировка стека (скопирована из файла журнала рабочей области):

Код: Выделить всё

!ENTRY org.eclipse.wb.core 4 4 2024-12-03 08:06:29.034
!MESSAGE Designer [1.9.600.202405211736.202412030744]: 313 (Exception during 'super' constructor evaluation).
!STACK 0
org.eclipse.wb.internal.core.utils.exception.DesignerException:  3 1 3   ( E x c e p t i o n   d u r i n g   ' s u p e r '   c o n s t r u c t o r   e v a l u a t i o n ) . < b r   / >         a t   o r g . e c l i p s e . w b . i n t e r n a l . c o r e . m o d e l . c r e a t i o n . T h i s C r e a t i o n S u p p o r t . c r e a t e _ u s i n g E n h a n c e r ( T h i s C r e a t i o n S u p p o r t . j a v a : 3 6 2 ) < b r   / >         a t   o r g . e c l i p s e . w b . i n t e r n a l . c o r e . m o d e l . c r e a t i o n . T h i s C r e a t i o n S u p p o r t . c r e a t e 0 ( T h i s C r e a t i o n S u p p o r t . j a v a : 3 2 2 ) < b r   / >         a t   o r g . e c l i p s e . w b . i n t e r n a l . c o r e . m o d e l . c r e a t i o n . T h i s C r e a t i o n S u p p o r t . c r e a t e ( T h i s C r e a t i o n S u p p o r t . j a v a : 3 0 1 ) < b r   / >         a t   o r g . e c l i p s e . w b . i n t e r n a l . c o r e . m o d e l . J a v a I n f o E v a l u a t i o n H e l p e r . e v a l u a t e J a v a I n f o U s i n g C r e a t i o n S u p p o r t ( J a v a I n f o E v a l u a t i o n H e l p e r . j a v a : 6 3 4 ) < b r   / >         a t   o r g . e c l i p s e . w b . i n t e r n a l . c o r e . p a r s e r . J a v a I n f o P a r s e r . a d d J a v a I n f o ( J a v a I n f o P a r s e r . j a v a : 1263)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:254)
at org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:152)
at org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:1)
at org.eclipse.wb.internal.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:160)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:149)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:551)
at org.eclipse.wb.internal.core.editor.DesignPage$8$1.run(DesignPage.java:466)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4814)
at org.eclipse.wb.internal.core.editor.DesignPage$8.run(DesignPage.java:462)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:434)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:354)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:470)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF_withProgress(DesignPage.java:482)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:430)
at org.eclipse.wb.internal.core.editor.UndoManager.refreshDesignerEditor(UndoManager.java:385)
at org.eclipse.wb.internal.core.editor.UndoManager.activate(UndoManager.java:86)
at org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState_True(DesignPage.java:273)
at org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState(DesignPage.java:250)
at org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode.showPage(DefaultMultiMode.java:127)
at org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode$1.widgetSelected(DefaultMultiMode.java:63)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:265)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4285)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1160)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1184)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1169)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:841)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3259)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1898)
at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:333)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4285)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1160)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4083)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3673)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
Caused by:  java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at org.eclipse.wb.internal.core.model.creation.ThisCreationSupport.create_usingEnhancer(ThisCreationSupport.java:351)
... 60 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class javax.imageio.ImageIO
at qc.general.QtGeneralRoutines.loadLocalImage(QtGeneralRoutines.java:3464)
at qc.general.QtGeneralRoutines.loadImage(QtGeneralRoutines.java:3212)
at qc.general.QtGeneralRoutines.loadImageIcon(QtGeneralRoutines.java:3249)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseIcon(QtLookAndFeelRoutines.java:171)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseIcon(QtLookAndFeelRoutines.java:181)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseUserPropertiesDocument(QtLookAndFeelRoutines.java:290)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.loadFile(QtLookAndFeelRoutines.java:335)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.loadDefaultProperties(QtLookAndFeelRoutines.java:54)
at qc.desktop.lookandfeel.QtLookAndFeelUserImplementationDefault.setLookAndFeel(QtLookAndFeelUserImplementationDefault.java:19)
at qc.general.QtGeneralRoutines.setLookAndFeel(QtGeneralRoutines.java:4926)
at qt.presentacion.QtPanel.initialize(QtPanel.java:1670)
at qt.presentacion.QtPanel.(QtPanel.java:151)
at qt.presentacion.QtPanel$ByteBuddy$1genscyU.(Unknown Source)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
...  63 more
Caused by: java.lang.ExceptionInInitializerError: Exception java.util.ServiceConfigurationError: javax.imageio.spi.ImageWriterSpi: Provider com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriterSpi could not be instantiated [in thread "main"]
at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:813)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729)
at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
at java.desktop/javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:183)
at java.desktop/javax.imageio.spi.IIORegistry.(IIORegistry.java:107)
at java.desktop/javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:128)
at java.desktop/javax.imageio.ImageIO.(ImageIO.java:64)
at qc.general.QtGeneralRoutines.loadLocalImage(QtGeneralRoutines.java:3464)
at qc.general.QtGeneralRoutines.loadImage(QtGeneralRoutines.java:3212)
at qc.general.QtGeneralRoutines.loadImageIcon(QtGeneralRoutines.java:3249)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseIcon(QtLookAndFeelRoutines.java:171)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseIcon(QtLookAndFeelRoutines.java:181)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.parseUserPropertiesDocument(QtLookAndFeelRoutines.java:290)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.loadFile(QtLookAndFeelRoutines.java:335)
at qc.desktop.lookandfeel.QtLookAndFeelRoutines.loadDefaultProperties(QtLookAndFeelRoutines.java:54)
at qc.desktop.lookandfeel.QtLookAndFeelUserImplementationDefault.setLookAndFeel(QtLookAndFeelUserImplementationDefault.java:19)
at qc.general.QtGeneralRoutines.setLookAndFeel(QtGeneralRoutines.java:4926)
at qt.presentacion.QtPanel.initialize(QtPanel.java:1670)
at qt.presentacion.QtPanel.(QtPanel.java:151)
at qt.development.editors.QtErrorFlowInfoEditorGUI.(QtErrorFlowInfoEditorGUI.java:31)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:304)
at java.base/java.lang.Class.newInstance(Class.java:725)
at qt.development.editors.QtPropertyEditorGUIAdapter.initialize(QtPropertyEditorGUIAdapter.java:87)
at qt.development.editors.QtPropertyEditorGUIAdapter.(QtPropertyEditorGUIAdapter.java:37)
at qt.development.editors.QtErrorFlowInfoEditor.(QtErrorFlowInfoEditor.java:10)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:421)
at java.base/java.lang.Class.forName(Class.java:412)
at qt.presentacion.QtAbstractBeanInfo.getPropertyDescriptor(QtAbstractBeanInfo.java:162)
at qt.presentacion.QtAbstractBeanInfo.getPropertyDescriptors(QtAbstractBeanInfo.java:297)
at java.desktop/java.beans.Introspector.getPropertyDescriptors(Introspector.java:576)
at java.desktop/java.beans.Introspector.getTargetPropertyInfo(Introspector.java:482)
at java.desktop/java.beans.Introspector.getBeanInfo(Introspector.java:448)
at java.desktop/java.beans.Introspector.getBeanInfo(Introspector.java:195)
at org.eclipse.wb.internal.core.utils.reflect.ReflectionUtils.getBeanInfo(ReflectionUtils.java:1401)
at org.eclipse.wb.internal.core.model.description.helpers.ComponentDescriptionHelper.getDescription0(ComponentDescriptionHelper.java:354)
at org.eclipse.wb.internal.core.model.description.helpers.ComponentDescriptionHelper.getDescription0(ComponentDescriptionHelper.java:288)
at org.eclipse.wb.internal.core.model.description.helpers.ComponentDescriptionHelper.getDescription(ComponentDescriptionHelper.java:257)
at org.eclipse.wb.internal.core.model.JavaInfoUtils.createJavaInfo(JavaInfoUtils.java:390)
at org.eclipse.wb.internal.swing.parser.ParseFactory.getRootContext(ParseFactory.java:126)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.prepareParseContext(JavaInfoParser.java:1184)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:243)
... 55 more
Я попробовал изменить рабочую область Java. Я попробовал Java, поставляемую с Eclipse, т.е.

Код: Выделить всё

eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.3.v20240426-1530
Я также пробовал использовать Java 21 от Azul. Я получал одну и ту же ошибку для каждой Java, которую пробовал.
Это новый код, который я использую:

Код: Выделить всё

java.awt.Image returnImage = null;
StringBuffer filePath = new StringBuffer("path/to/file");
try (FileInputStream ist = new FileInputStream(filePath.toString())) {
returnImage = ImageIO.read(ist);  // line 3464
}
catch (java.io.IOException e) {
LocalDateTime ldt = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd HH:mm:ss",
Locale.ENGLISH);
System.err.println("Ignored: " + ldt.format(formatter));
e.printStackTrace();
}
Приведенный выше код включает строку, указанную в этой строке трассировки стека выше:

Код: Выделить всё

qc.general.QtGeneralRoutines.loadLocalImage(QtGeneralRoutines.java:3464)
Обратите внимание, что приложение запускается без ошибок, т. е. когда я запускаю приложение, метод read выполняется успешно и создает изображение. Проблема возникает только тогда, когда я пытаюсь открыть «экран» в WindowBuilder.
Поскольку проблема связана с WindowBuilder, я не знаю, как создать воспроизводимый пример. Возможно, кто-нибудь покажет мне, как это сделать?
Я не знаю, какие еще детали необходимы, поэтому, пожалуйста, дайте мне знать, и я постараюсь их предоставить.
По сути, я хочу знать, что мне нужно сделать, чтобы WindowBuilder открывал конструктор без сбоев.

Подробнее здесь: https://stackoverflow.com/questions/792 ... evaluation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Eclipse Windowbuilder по умолчанию
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Супер::BeginPlay() , Супер::Tick()
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Палитра Windowbuilder без компонентов
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Вызов конструктора из другого конструктора оставляет элементы данных неинициализированными [дубликат]
    Anonymous » » в форуме C++
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous
  • Guice выдает «класс не имеет аннотированного конструктора @Inject или конструктора без аргументов», даже если аннотация
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»