XMind 8 suddenly stopped working on Ubuntu 18.04 LTS after .ini fix

After I upgraded Ubuntu to 18.04 from 16.04, XMind 8 (update8-linux) stopped working so I ran across a fix that consisted in adding a few lines to the .ini file. Everything was working great for a few months (even I created .desktop entry so I could launch the app from the dock). Until last week I couldn't open XMind anymore. The error prompt says to look at the .log file and this is the output:

!SESSION 2019-04-25 22:01:01.176 -----------------------------------------------
eclipse.buildId=R3.7.8.201807240049
java.version=11.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments: -eclipse.keyring @
Command-line arguments: -os linux -ws gtk -arch x86_64 -data ../workspace -eclipse.keyring @
!ENTRY org.xmind.cathy 1 0 2019-04-25 22:01:03.880
!MESSAGE Skip unrecognized command line argument: '-eclipse.keyring'
!ENTRY org.xmind.cathy 1 0 2019-04-25 22:01:03.881
!MESSAGE Skip unrecognized command line argument: '@
!ENTRY org.eclipse.osgi.compatibility.state.nl_ko 2 0 2019-04-25 22:01:04.019
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_ko [846] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_zh_TW 2 0 2019-04-25 22:01:04.019
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_zh_TW [851] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_fr 2 0 2019-04-25 22:01:04.019
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_fr [843] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_pt_BR 2 0 2019-04-25 22:01:04.019
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_pt_BR [847] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_it 2 0 2019-04-25 22:01:04.019
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_it [844] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_da 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_da [840] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_ar 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_ar [839] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_ja 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_ja [845] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_es 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_es [842] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_zh 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_zh [850] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_ru 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_ru [848] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_de 2 0 2019-04-25 22:01:04.020
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_de [841] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi.compatibility.state.nl_sl 2 0 2019-04-25 22:01:04.021
!MESSAGE Could not resolve module: org.eclipse.osgi.compatibility.state.nl_sl [849] Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state Unresolved requirement: Fragment-Host: org.eclipse.osgi.compatibility.state
!ENTRY org.eclipse.osgi 4 0 2019-04-25 22:01:04.022
!MESSAGE Application error
!STACK 1
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:386) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:294) at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:490) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:504) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:203) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:626) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.xmind.cathy.internal.CathyApplication.start(CathyApplication.java:137) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at (Native Method) at (NativeMethodAccessorImpl.java:62) at (DelegatingMethodAccessorImpl.java:43) at (Method.java:566) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) at org.eclipse.equinox.launcher.Main.run(Main.java:1519) at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:151) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:375) ... 23 more
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.6.0.v20160319-0612 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:398) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:361) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:353) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161) at (ClassLoader.java:521) ... 25 more
!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-04-25 22:01:04.033
!MESSAGE FrameworkEvent ERROR
!STACK 0
java.lang.NoClassDefFoundError: javax/annotation/PreDestroy at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:426) at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:154) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:78) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:74) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:176) at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:106) at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:139) at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:903) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:156) at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) at org.eclipse.osgi.container.Module.doStop(Module.java:634) at org.eclipse.osgi.container.Module.stop(Module.java:498) at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:191) at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) at (Thread.java:834)
Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy cannot be found by org.eclipse.e4.core.di_1.6.0.v20160319-0612 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:398) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:361) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:353) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161) at (ClassLoader.java:521) ... 21 more

I tried changing between JDK versions and distributions (oracle and openjdk) but nothing worked. I tried modifying the .ini file again, and it still didn't work. Is there any fix to this error? Thanks for your time.

2

3 Answers

You will need java-8-openjdk installed.

Step 1: apt install openjdk-8-jre Step 2: set default jre

> sudo update-alternatives --config java
> There are 2 choices for the alternative java (providing
> /usr/bin/java).
>
> Selection Path
> Priority Status
> ------------------------------------------------------------
> * 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 auto mode 1
> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
> 2 /usr/lib/jvm/jdk-12.0.1/bin/java 2
> manual mode

Step 3: copy the jre 8 location Step 4: Update Xmind.ini file with following option -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin

6

For me the approach of ebenash worked. My XMind.ini file looked afterwards like this:

$ cat XMind_amd64/XMind.ini
-vm
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin
-configuration
./configuration
-data
../workspace

(with more below that...). Note that I had to put a linebreak between -vm and the actual value /usr/lib/jvm...

This is how I managed to make it run again:

  • Step 1: Select the java-8-openjdk option using the command sudo update-alternatives --config java
  • Step 2: the earlier fix to the .ini file consisted in adding this line at the end of the file --add-modules=ALL-SYSTEM. Remove this line.
  • Step 3: Relaunch the XMind program and it should work.

It seems XMind doesn't work with later versions of JVM, it needs Java 8 but can't run with the --add-modules option since it was introduced in later versions.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like