Installed the Java Hex Editor plugin (version 0.5.2.202104030307) into Eclipse
via both the Eclipse Marketplace and directly via the update site
(https://javahexeditor.sourceforge.io/update) — same result both ways.
Environment:
Note: this is not new or specific to the environment above — I've hit this
identical failure with this same plugin version (0.5.2.202104030307) across
multiple different Eclipse installations over the past several years, ever
since I first tried the plugin. Given the plugin's git history shows no code
changes since April/May 2021 (matching this release's timestamp), it looks
like this release build has likely been broken since it was first published,
independent of which Eclipse version it's installed into.
Steps to reproduce:
Expected: the file opens in the hex editor view.
Actual: the editor fails to open, with the following exception in the Error
Log:
org.eclipse.core.runtime.CoreException: Plug-in net.sourceforge.javahexeditor.plugin
was unable to load class net.sourceforge.javahexeditor.plugin.editors.HexEditor.
...
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically
activating bundle net.sourceforge.javahexeditor.plugin (649).
...
Caused by: org.osgi.framework.BundleException: Error loading bundle activator.
net.sourceforge.javahexeditor.plugin_0.5.2.202104030307 [649]
...
Caused by: java.lang.Error: Unresolved compilation problems:
The import net.sourceforge.javahexeditor.FindReplaceHistory cannot be resolved
The import net.sourceforge.javahexeditor.Manager cannot be resolved
The import net.sourceforge.javahexeditor.common cannot be resolved
Log cannot be resolved to a type
Manager cannot be resolved to a variable
FindReplaceHistory cannot be resolved to a type
The method isTraceActive() of type HexEditorPlugin must override or implement a supertype method
at net.sourceforge.javahexeditor.plugin.HexEditorPlugin.<init>(HexEditorPlugin.java:27)</init>
This looks like the published 0.5.2.202104030307 build of the .plugin bundle
itself contains a baked-in compile failure, rather than something wrong with
the install — the "Unresolved compilation problems" text is what Eclipse's
compiler writes into a class file when the source had unresolved references
at build time. My guess (not confirmed) is the .plugin bundle's release build
didn't have the core "javahexeditor" module (which defines Manager,
FindReplaceHistory, common, Log) on its classpath when it was compiled.
Would appreciate confirmation of whether this is a known issue, and whether
a rebuild against the current core module is planned.
Thanks for the report. I will check.
Last edit: Peter Dell 4 days ago
Reproducible in Windows version in Win 11 / Eclipse 2026-06
org.eclipse.core.runtime.CoreException: Plug-in net.sourceforge.javahexeditor.plugin was unable to load class net.sourceforge.javahexeditor.plugin.editors.HexEditor.
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.throwException(RegistryStrategyOSGI.java:245)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:228)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:1034)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:286)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:65)
at org.eclipse.ui.internal.WorkbenchPlugin.lambda$0(WorkbenchPlugin.java:285)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:283)
at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:228)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:322)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPart(CompatibilityPart.java:306)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPart(CompatibilityEditor.java:61)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:344)
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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1016)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:994)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:138)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:397)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:315)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:203)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:90)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:59)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
at org.eclipse.ui.internal.WorkbenchContributionFactory.create(WorkbenchContributionFactory.java:46)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:133)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1000)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:671)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:775)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:739)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:723)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:182)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:136)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4895)
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:206)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:201)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:132)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:73)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:48)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:61)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:168)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:187)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:650)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:614)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:805)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:406)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1278)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3221)
at org.eclipse.ui.internal.WorkbenchPage.lambda$11(WorkbenchPage.java:3111)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3109)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3079)
at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:325)
at org.eclipse.ui.actions.OpenWithMenu.lambda$1(OpenWithMenu.java:213)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4363)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1217)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4161)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3749)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:684)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:193)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
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:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle net.sourceforge.javahexeditor.plugin (600).
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:133)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:620)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:353)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:418)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:527)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:439)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:195)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:663)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:226)
... 87 more
Caused by: org.osgi.framework.BundleException: Error loading bundle activator. net.sourceforge.javahexeditor.plugin_0.5.2.202104030307 [600]
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:774)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1082)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:394)
at org.eclipse.osgi.container.Module.doStart(Module.java:643)
at org.eclipse.osgi.container.Module.start(Module.java:500)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:528)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:122)
... 96 more
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.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:820)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:765)
... 102 more
Caused by: java.lang.Error: Unresolved compilation problems:
The import net.sourceforge.javahexeditor.FindReplaceHistory cannot be resolved
The import net.sourceforge.javahexeditor.Manager cannot be resolved
The import net.sourceforge.javahexeditor.common cannot be resolved
Log cannot be resolved to a type
Manager cannot be resolved to a variable
FindReplaceHistory cannot be resolved to a type
FindReplaceHistory cannot be resolved to a type
FindReplaceHistory cannot be resolved to a type
Log cannot be resolved
FindReplaceHistory cannot be resolved to a type
FindReplaceHistory cannot be resolved to a type
The method isTraceActive() of type HexEditorPlugin must override or implement a supertype method
Thanks for reproducing this. I dug into the project's git repo (git.code.sf.net/p/javahexeditor/git) to see if I could spot the mechanism behind the "Unresolved compilation problems" stub, and think I found something worth sharing -- flagging it as a plausible lead, not a confirmed diagnosis.
The 0.5.2 release was built April 3, 2021 (the version qualifier "202104030307" is literally the Eclipse build timestamp). The commit right before that, from April 2, 2021 ("Refactor build process and change http:// to https://"), restructured how the plugin is built: instead of compiling the core net.sourceforge.javahexeditor classes directly, javahexeditor.plugin now bundles a separately-built lib/net.sourceforge.javahexeditor.jar, wired in via a Bundle-ClassPath entry in MANIFEST.MF and a library classpath entry in .classpath.
I checked out the jar and .classpath as they stood right at the April 3 release commit, and on the surface they look correctly set up -- the jar contains real, non-stub Manager/FindReplaceHistory/common classes, and the classpath entry referencing it is there. So I can't point to an obviously broken file in the repo itself; whatever went wrong likely happened in the actual release/export step rather than anything visible in source control.
One thing that stood out: on May 16, 2021 -- about six weeks after this release shipped -- there are two commits ("Add source reference for lib in plugin" and "Update jar in lib.") that touch exactly that same lib jar and its classpath entry again. As far as I can tell no new release was ever published after that. Worth checking whether those May changes were addressing a problem with this same lib-jar packaging that had already turned up by then, since that would narrow down what to look at now.
Hope this narrows things down even if it's not the full answer.