Question

My application eclipse Java application.I am launching it with a myapp.jnlp file. On clicking myapp.jnlp file it is launching java application perfectly. Now I want to add two splash screen both javaws application splash screen and eclipse equinox launcher application splash screen.I am successful to apply splash screen on javaws application by adding following line in myapp.jnlp file. Now I wish to add splash screen to java application till I will get UI of my application so I refer following links.

Kai's blog

Eclipse Bugs

I have followed all steps correctly in my jnlp file and defined properties correctly. properties I defied are as follow :

Still I am unable to get launch splash screen.

I have also defined property @user.home which has value="C:\myhome"

When I opened osgi.install.area means location "C:\myhome\abc\workspace\osgi" I found it blank.

I have a doubt regarding it that i have done obfuscation in my java application.

  • Can this cause any problem?
  • Is splash screen for equinox.launcher in java using reflection?

Reason for this doubt is when I opened location @user.home\abc\workspace , I found exception

org.osgi.framework.BundleException: State change in progress for bundle "initial@reference:file:../../../../Users/Ajay/AppData/LocalLow/Sun/Java/Deployment/cache/6.0/25/6e811f29-3354dccb/" by thread "javawsApplicationMain".
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1077)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:282)
    at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
    at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
    at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
    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:410)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(Unknown Source)

Is this a reason that I am not able to get my splash screen.

Was it helpful?

Solution

I figured out a solution to the problem. If we create a jar via jar cmdlet, it deletes existing MANIFEST.MF file and will generate a new MANIFEST.MF . Because of above-mentioned behavior, equinox.launcher plugin is not unable to find corresponding platform plugin.

In order to solve the problem, we are using zip cmdlet to create the jar and the splash screen is working fine.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top