title: Cannot launch Eclipse because "The instance data location has not been specified yet"
body: <p>After I select a workspace to start, pop up a window saying "An error has occurred. See the log file *my_work_space.metadata.log"</p>
  
  <p>The log is:</p>
  
  <pre><code>!ENTRY org.eclipse.osgi 4 0 2019-03-19 16:57:32.090
  !MESSAGE Application error
  !STACK 1
  java.lang.NoClassDefFoundError: org/eclipse/core/resources/IContainer
      at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:156)
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
  Caused by: java.lang.ClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.core.resources (1211).
      at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:126)
      at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:557)
      at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:331)
      at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
      at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:39)
      at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
      at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414)
      at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153)
      at java.lang.ClassLoader.loadClass(Unknown Source)
      at java.lang.Class.getDeclaredConstructors0(Native Method)
      at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
      at java.lang.Class.getConstructor0(Unknown Source)
      at java.lang.Class.newInstance(Unknown Source)
      at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:766)
      at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:719)
      at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1005)
      at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:357)
      at org.eclipse.osgi.container.Module.doStart(Module.java:588)
      at org.eclipse.osgi.container.Module.start(Module.java:456)
      at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1783)
      at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1763)
      at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1725)
      at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1656)
      at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
      at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233)
      at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
  Caused by: org.osgi.framework.BundleException: Exception in org.eclipse.core.resources.ResourcesPlugin.start() of bundle org.eclipse.core.resources.
      at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:803)
      at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:732)
      at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1005)
      at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:357)
      at org.eclipse.osgi.container.Module.doStart(Module.java:588)
      at org.eclipse.osgi.container.Module.start(Module.java:456)
      at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:471)
      at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
      ... 26 more
  Caused by: java.lang.IllegalStateException: The instance data location has not been specified yet.
      at org.eclipse.core.internal.runtime.DataArea.assertLocationInitialized(DataArea.java:59)
      at org.eclipse.core.internal.runtime.DataArea.getStateLocation(DataArea.java:136)
      at org.eclipse.core.internal.runtime.InternalPlatform.getStateLocation(InternalPlatform.java:540)
      at org.eclipse.core.runtime.Plugin.getStateLocation(Plugin.java:292)
      at org.eclipse.core.internal.resources.LocalMetaArea.&lt;init&gt;(LocalMetaArea.java:63)
      at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:481)
      at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:782)
      at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:775)
      ... 33 more
  </code></pre>
  
  <p>After I googled a while, I find a way to start it in command line:</p>
  
  <pre><code>.\eclipse.exe -data C:\*\my_work_space
  </code></pre>
  
  <p>However, I do not want to launch it in this way forever. Any help is appreciated!</p>
  
  <p>Environment:</p>
  
  <ul>
  <li>Windows 10 64 bits</li>
  <li>Eclipse 2018-12 (4.10.0)</li>
  </ul>
  
  <p>eclipse.ini:</p>
  
  <pre><code>-startup
  plugins/org.eclipse.equinox.launcher_1.5.200.v20180922-1751.jar
  --launcher.library
  C:\Users\*\.p2\pool\plugins\org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.900.v20180922-1751
  -product
  org.eclipse.epp.package.jee.product
  -showsplash
  org.eclipse.epp.package.common
  --launcher.defaultAction
  openFile
  --launcher.appendVmargs
  -vm
  C:/Program Files/Java/jre1.8.0_171/bin
  -vmargs
  -Dosgi.requiredJavaVersion=1.8
  -Dosgi.instance.area.default=@user.home/eclipse-workspace
  -XX:+UseG1GC
  -XX:+UseStringDeduplication
  --add-modules=ALL-SYSTEM
  -Dosgi.requiredJavaVersion=1.8
  -Dosgi.dataAreaRequiresExplicitInit=true
  -Xms256m
  -Xmx1024m
  --add-modules=ALL-SYSTEM
  -Declipse.p2.max.threads=10
  -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
  -Doomph.redirection.index.redirection=index:/-&gt;http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
  </code></pre>