我的应用程序eclipse Java应用程序。我正在使用myapp.jnlp文件启动它。 在单击myapp.jnlp文件时,它将完美地启动Java应用程序。 现在我想添加两个启动画面,包括javaws应用程序启动画面和eclipse equinox启动器应用程序启动画面。我成功通过在myapp.jnlp文件中添加以下行来在javaws应用程序上应用启动画面。 现在我想在java应用程序中添加启动画面,直到我得到我的应用程序的UI,所以我参考以下链接。
我已经在我的jnlp文件中正确地执行了所有步骤并正确定义了属性。 我反对的属性如下:
仍然无法启动启动画面。
我还定义了属性@ user.home,其值为" C:\ myhome"
当我打开osgi.install.area意味着位置" C:\ myhome \ abc \ workspace \ osgi"我发现它是空白的。
我怀疑我在java应用程序中进行了混淆。
这个疑问的原因是当我打开location @ user.home \ abc \ workspace时,我发现异常
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)
这是我无法获得启动画面的原因。
答案 0 :(得分:0)
我找到了问题的解决方案。如果我们通过jar cmdlet创建一个jar,它会删除现有的MANIFEST.MF文件并生成一个新的MANIFEST.MF。由于上述行为,equinox.launcher插件无法找到相应的平台插件。
为了解决这个问题,我们使用zip cmdlet来创建jar,并且启动画面工作正常。