Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » e(fx)clipse » How to startup efxclipse RCP application via EclipseStarter programmatically?
How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1591203] Thu, 29 January 2015 11:31 Go to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
I' ve difficulties when trying to startup an exported efxclipse RCP application from within Java via the EclipseStarter. Running it from the command line from the eclipse directory java -jar plugins\org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar works like expected and the UI does show up.
But when trying to run it with the EclipseStarter the UI of the application is not displayed. Comparing the bundle states show that many bundles are in STARTING state instead of ACTIVE state when run with EclipseStarter (see below)

Can this problem be related to the used framework adapter hooks? Are there any special properties I've to set? Should it work at all? Has anybody done this before?

------------------ bundles with different state (not ACTIVE) ---------------------
15 STARTING org.eclipse.core.databinding.observable_1.4.1.v20140210-1835
18 STARTING org.eclipse.core.filesystem_1.4.100.v20140514-1614
20 STARTING org.eclipse.core.resources_3.9.1.v20140825-1431
22 STARTING org.eclipse.e4.core.commands_0.10.2.v20140424-2344
23 STARTING org.eclipse.e4.core.contexts_1.3.100.v20140407-1019
24 STARTING org.eclipse.e4.core.di_1.4.0.v20140414-1837
25 STARTING org.eclipse.e4.core.di.extensions_0.12.0.v20140417-2033
26 STARTING org.eclipse.e4.core.services_1.2.1.v20140808-1251
27 STARTING org.eclipse.e4.ui.di_1.0.0.v20140328-2112
28 STARTING org.eclipse.e4.ui.model.workbench_1.1.0.v20140512-1820
29 STARTING org.eclipse.e4.ui.services_1.1.0.v20140328-1925
30 STARTING org.eclipse.e4.ui.workbench_1.2.1.v20140901-1244
31 STARTING org.eclipse.emf.common_2.10.1.v20140901-1043
33 STARTING org.eclipse.emf.ecore_2.10.1.v20140901-1043
35 STARTING org.eclipse.emf.ecore.xmi_2.10.1.v20140901-1043
46 STARTING org.eclipse.fx.core_1.1.0.201411050703
49 STARTING org.eclipse.fx.core.di.context_1.1.0.201411050703
51 STARTING org.eclipse.fx.javafx_2.2.0.201411050602
52 STARTING org.eclipse.fx.osgi.util_1.1.0.201411050703
53 STARTING org.eclipse.fx.ui.controls_1.1.0.201411050703
55 STARTING org.eclipse.fx.ui.di_1.1.0.201411050703
57 STARTING org.eclipse.fx.ui.keybindings_1.1.0.201411050703
59 STARTING org.eclipse.fx.ui.keybindings.generic_1.1.0.201411050703
61 STARTING org.eclipse.fx.ui.services_1.1.0.201411050703
62 STARTING org.eclipse.fx.ui.theme_1.1.0.201411050703
63 STARTING org.eclipse.fx.ui.workbench.base_1.1.0.201411050703
64 STARTING org.eclipse.fx.ui.workbench.fx_1.1.0.201411050703
66 STARTING org.eclipse.fx.ui.workbench.renderers.fx_1.1.0.201411050703
67 STARTING org.eclipse.fx.ui.workbench.services_1.1.0.201411050703
--------------------------------------------------------------------------------------------------------
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1591399 is a reply to message #1591203] Thu, 29 January 2015 14:03 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
I changed the implementation to use EclipseStarter.main now. With this configuration I get at least an exception (see below).
How can I get rid of this error?

java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:272)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:632)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:588)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.fx.ui.workbench.fx.E4Application.getJfxApplicationClass(E4Application.java:297)
at org.eclipse.fx.ui.workbench.fx.E4Application.launchE4JavaFxApplication(E4Application.java:282)
at org.eclipse.fx.ui.workbench.fx.E4Application.start(E4Application.java:103)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.equinox.internal.app.AnyThreadAppLauncher.run(AnyThreadAppLauncher.java:26)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application cannot be found by org.eclipse.fx.ui.workbench.fx_1.1.0.201411050703
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 20 more
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1591453 is a reply to message #1591399] Thu, 29 January 2015 14:43 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

Ok yes it looks like the osgi-hooks are not in action. In an exported
application the hook stuff is defined through the config.ini which the
EclipseStarter is not using

2 solutions:
a) try starting with -Dosgi.framework.extensions=org.eclipse.fx.osgi
b) start with -Dorg.osgi.framework.bundle.parent=ext - this will work
for sure because it this way all the classloading magic of the hook
is not needed

I really hope that one day Equinox will make the "ext" setting the
default and which would make the fake bundle, the imports, ... needless.

In applications who use Nashorn I'm running today already with this
setting we currently only keep the hook stuff because of Java7 / RCP and
the IDE where we can't simply change this setting.

Tom

On 29.01.15 15:03, Claus Klammer wrote:
> I changed the implementation to use EclipseStarter.main now. With this
> configuration I get at least an exception (see below). How can I get rid
> of this error?
>
> java.lang.NoClassDefFoundError: javafx/application/Application
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
> at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:272)
>
> at
> org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:632)
>
> at
> org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:588)
>
> at
> org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)
>
> at
> org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)
>
> at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:320)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:395)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
>
> at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at
> org.eclipse.fx.ui.workbench.fx.E4Application.getJfxApplicationClass(E4Application.java:297)
>
> at
> org.eclipse.fx.ui.workbench.fx.E4Application.launchE4JavaFxApplication(E4Application.java:282)
>
> at
> org.eclipse.fx.ui.workbench.fx.E4Application.start(E4Application.java:103)
> at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>
> at
> org.eclipse.equinox.internal.app.AnyThreadAppLauncher.run(AnyThreadAppLauncher.java:26)
>
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException:
> javafx.application.Application cannot be found by
> org.eclipse.fx.ui.workbench.fx_1.1.0.201411050703
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:382)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
>
> at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 20 more
>
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592719 is a reply to message #1591453] Fri, 30 January 2015 07:23 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
Thank you Tom for your fast response. Unfortunately neither of your suggested soltions work. I will now take a look at the differences between starting with EclipseStarter and the launcher Main. Do you have any additional suggestions? (see my bootstrapping code below, which is called from the main class constructor
		new Thread() {
			@Override
			public void run() {
				initializeEclipseStarter();
				String[] equinoxArgs = {"org.osgi.framework.bundle.parent", "ext", "-console", "-consoleLog", "-debug", "debug_options", "-org.osgi.framework.bundle.parent", "ext", "-data", "D:/projects/AutoTest/Keba/_out/eclipse/"};
				try {
					EclipseStarter.main(equinoxArgs);
				} catch (Exception e) {
					throw new RuntimeException("Starting OSGI failed!", e);
				}
			}
		}.start();
		
		while (!EclipseStarter.isRunning()) {
			Thread.sleep(1000);
		}
                ............

	private void initializeEclipseStarter() {
		Map<String, String> initProps = new HashMap<String, String>();
		initProps.put("osgi.syspath", myExportedApplicationLocation+"plugins");
		initProps.put("osgi.install.area", myExportedApplicationLocation);
		initProps.put("org.osgi.framework.bundle.parent",  "ext");
		
		EclipseStarter.setInitialProperties(initProps);
	}

[Updated on: Fri, 30 January 2015 07:24]

Report message to a moderator

Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592738 is a reply to message #1592719] Fri, 30 January 2015 07:39 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
hmm, it seem that only org.eclipse.equinox.launcher.Main considers this property (see method invokeFramework).
So I will try to use this code too.
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592739 is a reply to message #1592719] Fri, 30 January 2015 07:38 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
You are using it wrong! -D needs to be passed to the launch process!

so you should launch the VM with

java -jar .... -Dorg.osgi.framework.bundle.parent=ext both parameters I
gave you are should result in the system properties.

You could also try to set the directly in code using System.getProperties()!

Tom

On 30.01.15 08:23, Claus Klammer wrote:
> Thank you Tom for your fast response. Unfortunately neither of your
> suggested soltions work. I will not take a look at the differences
> between starting with EclipseStarter and the launcher Main. Do you have
> any additional suggestions? (see my bootstrapping code below, which is
> called from the main class constructor
>
> new Thread() {
> @Override
> public void run() {
> initializeEclipseStarter();
> String[] equinoxArgs =
> {"org.osgi.framework.bundle.parent", "ext", "-console", "-consoleLog",
> "-debug", "debug_options", "-org.osgi.framework.bundle.parent", "ext",
> "-data", "D:/projects/AutoTest/Keba/_out/eclipse/"};
> try {
> EclipseStarter.main(equinoxArgs);
> } catch (Exception e) {
> throw new RuntimeException("Starting OSGI failed!", e);
> }
> }
> }.start();
>
> while (!EclipseStarter.isRunning()) {
> Thread.sleep(1000);
> }
> ............
>
> private void initializeEclipseStarter() {
> Map<String, String> initProps = new HashMap<String, String>();
> initProps.put("osgi.syspath",
> myExportedApplicationLocation+"plugins");
> initProps.put("osgi.install.area", myExportedApplicationLocation);
> initProps.put("org.osgi.framework.bundle.parent", "ext");
>
> EclipseStarter.setInitialProperties(initProps);
> }
>
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592860 is a reply to message #1592739] Fri, 30 January 2015 09:10 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
I tried it also this way because setting it via SystemProperties (also programmatically) did not work for me - sorry for the confusion. I am currently investigating the org.eclipse.equinox.launcher.Main and the StartupClassLoader. But I've to admit that I did not find out so far, how this all fits together. Do you know of any documentation which describes the different launching strategies, and use cases of equinox.launcher Main and EclipseStarter and why we need a special classloading mechanism (extension feature only available when launched throw launcher.Main?)?

Have you ever sucessfully started an e4 fx RCP application programmatically within another java program? If yes, could you provide an example project - I would appreciate it very much.

Any other hints, or links to documentation of this classloading problems that help me for better understanding the problem are most welcome.
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592881 is a reply to message #1592860] Fri, 30 January 2015 09:25 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Yes I have because I had make an OSGi-Application starting as a
(Windows)Service-Daemon but I thing more done than to call

org.eclipse.equinox.launcher.Main.main(String[]) are you also using a
"configuration" directory?

Tom

On 30.01.15 10:10, Claus Klammer wrote:
> I tried it also this way because setting it via SystemProperties (also
> programmatically) did not work for me - sorry for the confusion. I am
> currently investigating the org.eclipse.equinox.launcher.Main and the
> StartupClassLoader. But I've to admit that I did not find out so far,
> how this all fits together. Do you know of any documentation which
> describes the different launching strategies, and use cases of
> equinox.launcher Main and EclipseStarter and why we need a special
> classloading mechanism (extension feature only available when launched
> throw launcher.Main?)?
>
> Have you ever sucessfully started an e4 fx RCP application
> programmatically within another java program? If yes, could you provide
> an example project - I would appreciate it very much.
>
> Any other hints, or links to documentation of this classloading problems
> that help me for better understanding the problem are most welcome.
>
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592924 is a reply to message #1592881] Fri, 30 January 2015 10:04 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
Yes, I use the configuration directory of the exported application.
Did you use the EclipseStarter, too? Documentation (launcher.Main) says that EclipseStarter should be used when started from java.

Excuse me, but I do not understand your comment "but I thing more done than to call"

Thomas Schindl wrote on Fri, 30 January 2015 04:25
Yes I have because I had make an OSGi-Application starting as a
(Windows)Service-Daemon but I thing more done than to call

org.eclipse.equinox.launcher.Main.main(String[]) are you also using a
"configuration" directory?

Tom

On 30.01.15 10:10, Claus Klammer wrote:
> I tried it also this way because setting it via SystemProperties (also
> programmatically) did not work for me - sorry for the confusion. I am
> currently investigating the org.eclipse.equinox.launcher.Main and the
> StartupClassLoader. But I've to admit that I did not find out so far,
> how this all fits together. Do you know of any documentation which
> describes the different launching strategies, and use cases of
> equinox.launcher Main and EclipseStarter and why we need a special
> classloading mechanism (extension feature only available when launched
> throw launcher.Main?)?
>
> Have you ever sucessfully started an e4 fx RCP application
> programmatically within another java program? If yes, could you provide
> an example project - I would appreciate it very much.
>
> Any other hints, or links to documentation of this classloading problems
> that help me for better understanding the problem are most welcome.
>

Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1592979 is a reply to message #1592924] Fri, 30 January 2015 10:41 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
My code looks like this (in reality it is a bit more involved because
I'm looking up the equinox.launcher and create an URLClassloader)

class MyClass {
private static String[] origArgs;

public static void main(String[] args) {
origArgs = args;
// .....
}

public void launch() {
...launcher.Main.launch(origArgs);
}
}

Can you post the content of your config.ini?

Tom

On 30.01.15 11:04, Claus Klammer wrote:
> Yes, I use the configuration directory of the exported application.
> Did you use the EclipseStarter, too? Documentation (launcher.Main) says
> that EclipseStarter should be used when started from java.
>
> Excuse me, but I do not understand your comment "but I thing more done
> than to call"
>
> Thomas Schindl wrote on Fri, 30 January 2015 04:25
>> Yes I have because I had make an OSGi-Application starting as a
>> (Windows)Service-Daemon but I thing more done than to call
>>
>> org.eclipse.equinox.launcher.Main.main(String[]) are you also using a
>> "configuration" directory?
>>
>> Tom
>>
>> On 30.01.15 10:10, Claus Klammer wrote:
>> > I tried it also this way because setting it via SystemProperties (also
>> > programmatically) did not work for me - sorry for the confusion. I am
>> > currently investigating the org.eclipse.equinox.launcher.Main and the
>> > StartupClassLoader. But I've to admit that I did not find out so far,
>> > how this all fits together. Do you know of any documentation which
>> > describes the different launching strategies, and use cases of
>> > equinox.launcher Main and EclipseStarter and why we need a special
>> > classloading mechanism (extension feature only available when launched
>> > throw launcher.Main?)?
>> > > Have you ever sucessfully started an e4 fx RCP application
>> > programmatically within another java program? If yes, could you provide
>> > an example project - I would appreciate it very much.
>> > > Any other hints, or links to documentation of this classloading
>> problems
>> > that help me for better understanding the problem are most welcome.
>> >
>
>
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1593050 is a reply to message #1592979] Fri, 30 January 2015 11:37 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
As I see, you are simply calling the equinox.launcher.Main. In opposite I would like to start it with the EclipseStarter. This is because I want to get the BundleContext by calling EclipseStarter.getSystemBundleContext and in turn get the Stage of the running application to interact with.
Or is there a way to get the Stage even if I start the application via the equinox.launcher.Main? Do you know of any other solution? There has to be another way since ScenicView is able to get all this information from a running jvm.
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1593088 is a reply to message #1593050] Fri, 30 January 2015 12:06 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

Something like this could work:

----------8<----------
> try {
> Class.forName("javafx.stage.Stage"); // force init of Stage statics
> } catch (ClassNotFoundException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> FXRobotHelper.getStages().addListener(new ListChangeListener<Stage>() {
> @Override
> public void onChanged(javafx.collections.ListChangeListener.Change<? extends Stage> c) {
> c.next();
> System.err.println(c.getAddedSubList());
> }
> });


----------8<----------

Internal API of course but well you asked for it ;-) I'm sure I could
find a solution which launches the application appropriately and
provides you access to the BundleContext but that is something beyond
our opensource offering.

Tom

On 30.01.15 12:37, Claus Klammer wrote:
> As I see, you are simply calling the equinox.launcher.Main. In opposite
> I would like to start it with the EclipseStarter. This is because I want
> to get the BundleContext by calling
> EclipseStarter.getSystemBundleContext and in turn get the Stage of the
> running application to interact with.
> Or is there a way to get the Stage even if I start the application via
> the equinox.launcher.Main? Do you know of any other solution? There has
> to be another way since ScenicView is able to get all this information
> from a running jvm.
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1593224 is a reply to message #1593088] Fri, 30 January 2015 13:46 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
Hi, yes, FXRobotHelper.getStages() is my friend Wink, thank you for the hint.

Interim report:
- I am not able to startup exported efxclipse rcp application from within plain java via FrameworkFactory or EclipseStarter
- The application starts up when launched via org.elcipse.equinox.launcher.Main properly
- I was able to access its Stage object via internal API FXRobotHelper.getStages()

For now I do not have another usage for the BundleContext. But perhaps I will come back to this issue later.
Once again, thank you for your great support!
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1593413 is a reply to message #1591453] Fri, 30 January 2015 16:22 Go to previous messageGo to next message
Claus Klammer is currently offline Claus KlammerFriend
Messages: 12
Registered: March 2012
Junior Member
Since I am curious (related to your statments see below), could you please elaborate in more detail about the implications of the Java7 support.
As far as I understand, these problems ("ext" thing) exist because Java7 does not come with built-in JavaFX support, am I right? How would efxclipse differ, if Java7 support could be dismissed?

Quote:

I really hope that one day Equinox will make the "ext" setting the
default and which would make the fake bundle, the imports, ... needless.

In applications who use Nashorn I'm running today already with this
setting we currently only keep the hook stuff because of Java7 / RCP and
the IDE where we can't simply change this setting.
Re: How to startup efxclipse RCP application via EclipseStarter programmatically? [message #1593694 is a reply to message #1593413] Fri, 30 January 2015 20:49 Go to previous message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
Hi,

Let's start with Equinox and its classloading which behaves a bit
strange because when it does classloading it simply skips the extension
classpath hence it won't find stuff on that classpath like JavaFX.

The "ext" setting I told you fixes this and makes Equinox behave like
any normal java app including Apache Felix.

In Java7 which we still support e.g. because of STS depending on it the
situation is a bit different because JavaFX is on NO classpath at all
hence even putting Equinox into the "ext" mode would not help,
additionally we can not rely on the "ext" mode when writing Eclipse IDE
plugins who use JavaFX because:
a) we can not simply reconfigure without potentially breaking old bundles
b) we can not do it because the SWT integration still is on no classpath

My comment was that once we can get rid of this stuff we could ditch the
hook stuff completely - my plan is to go down this route once we start
working on Java9 which anyways has jigsaw and everything is a module
anyways ;-)

Tom

On Java7 JavaFX is not on any classpath at all - so no matter what

On 30.01.15 17:22, Claus Klammer wrote:
> Since I am curious (related to your statments see below), could you
> please elaborate in more detail about the implications of the Java7
> support.
> As far as I understand, these problems ("ext" thing) exist because Java7
> does not come with built-in JavaFX support, am I right? How would
> efxclipse differ, if Java7 support could be dismissed?
>
> Quote:
>> I really hope that one day Equinox will make the "ext" setting the
>> default and which would make the fake bundle, the imports, ... needless.
>>
>> In applications who use Nashorn I'm running today already with this
>> setting we currently only keep the hook stuff because of Java7 / RCP and
>> the IDE where we can't simply change this setting.
>
Previous Topic:Build Error when added external native dependencies sqlite4java, jna
Next Topic:e(fx)clipse 1.2.0 released
Goto Forum:
  


Current Time: Fri Apr 19 01:33:08 GMT 2024

Powered by FUDForum. Page generated in 0.02629 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top