Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing instructions on what exactly needs to be installed before using JMC standalone #2

Open
UnasZole opened this issue Jun 16, 2022 · 2 comments

Comments

@UnasZole
Copy link

Hi,

The tutorial says "The tutorial will be easier to run if you have an Eclipse installed", but does not provide an explanation on what to do when we don't have Eclipse installed.

As it stands, on Windows 10, without any Eclipse installed, downloading the latest JMC from https://adoptium.net/jmc/ (org.openjdk.jmc-8.2.0-win32.win32.x86_64.zip , org.openjdk.jmc-8.3.0-SNAPSHOT-win32.win32.x86_64 , or even older 8.1 and other distributions in fact) and trying to open the "standalone" executable leads to the following :

!SESSION 2022-06-16 11:18:43.028 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_191
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB
Command-line arguments:  -os win32 -ws win32 -arch x86_64

!ENTRY org.apache.felix.scr 4 0 2022-06-16 11:18:43.840
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.apache.felix.scr [5]
  Unresolved requirement: Import-Package: org.apache.felix.service.command; version="[1.0.0,2.0.0)"; resolution:="optional"
  Unresolved requirement: Import-Package: org.osgi.service.cm; version="[1.6.0,2.0.0)"; resolution:="optional"
  Unresolved requirement: Import-Package: org.osgi.service.component; version="[1.4.0,1.5.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:463)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.lambda$1(ModuleContainer.java:1834)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1829)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1777)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1739)
	at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:269)
	at org.eclipse.osgi.container.Module.doStart(Module.java:605)
	at org.eclipse.osgi.container.Module.start(Module.java:468)
	at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:193)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:439)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:458)
	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:139)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:338)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:251)
	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:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2022-06-16 11:18:43.840
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.equinox.simpleconfigurator [6]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"

	at org.eclipse.osgi.container.Module.start(Module.java:463)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.lambda$1(ModuleContainer.java:1834)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1829)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1777)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1739)
	at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:269)
	at org.eclipse.osgi.container.Module.doStart(Module.java:605)
	at org.eclipse.osgi.container.Module.start(Module.java:468)
	at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:193)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:439)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:458)
	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:139)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:338)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:251)
	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:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

!ENTRY org.eclipse.osgi 4 0 2022-06-16 11:18:43.840
!MESSAGE Bundle initial@reference:file:plugins/org.apache.felix.scr_2.1.24.v20200924-1939.jar was not resolved.

!ENTRY org.eclipse.osgi 4 0 2022-06-16 11:18:43.840
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.equinox.simpleconfigurator_1.4.0.v20210315-2228.jar was not resolved.

!ENTRY org.eclipse.equinox.simpleconfigurator 2 0 2022-06-16 11:18:43.840
!MESSAGE Could not resolve module: org.eclipse.equinox.simpleconfigurator [6]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"


!ENTRY org.apache.felix.scr 2 0 2022-06-16 11:18:43.840
!MESSAGE Could not resolve module: org.apache.felix.scr [5]
  Unresolved requirement: Import-Package: org.apache.felix.service.command; version="[1.0.0,2.0.0)"; resolution:="optional"
  Unresolved requirement: Import-Package: org.osgi.service.cm; version="[1.6.0,2.0.0)"; resolution:="optional"
  Unresolved requirement: Import-Package: org.osgi.service.component; version="[1.4.0,1.5.0)"


!ENTRY org.eclipse.osgi 4 0 2022-06-16 11:18:43.856
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:81)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	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:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

Apparently, this occurs while resolving some of the core Eclipse OSGI dependencies.
But I couldn't find any documentation to explain if these dependencies are expected to be installed manually somewhere, and how ; or if it's actually a bug in the packaging (because a "standalone" application should usually not require the full framework installed separately) and where to report it in this case.

@UnasZole
Copy link
Author

UnasZole commented Jun 16, 2022

Well, after searching a bit, it turns out this error occurs when running on JDK8.
And while my JAVA_HOME was pointing to a JDK11, I also had an old JDK8 on my PATH. Fixing my PATH to point only to JDK11 solved the issue.

I guess that the main point here would be to fix the standalone executable to use JAVA_HOME when provided, like pretty much any other application, rather than default on the java executable resolved from the PATH.
Where could such a ticket be opened ?

@AndrWeisR
Copy link

Edit jmc.ini (in the same directory as jmc.exe) and add

--launcher.appendVmargs
-vm
{Path to your JRE}

-vmargs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants