Deployment JavaFX本机bundle exe正在抛出;JavaFx启动程序异常";其中,可执行Jar文件正在完美运行

Deployment JavaFX本机bundle exe正在抛出;JavaFx启动程序异常";其中,可执行Jar文件正在完美运行,deployment,ant,javafx-2,obfuscation,executable-jar,Deployment,Ant,Javafx 2,Obfuscation,Executable Jar,很长一段时间以来,我在运行应用程序jar时遇到了一个问题- 我正在使用Proguard对JAR进行模糊处理,该JAR文件还包含一些资源文件,如图像、.version文件等,以及publicCerts.store文件 所以为了将资源文件包含到最终的JAR中,我将所有的资源文件都指定为 -adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF,images/*.jar,*.version,publicCerts.sto

很长一段时间以来,我在运行应用程序jar时遇到了一个问题-

我正在使用
Proguard
对JAR进行模糊处理,该JAR文件还包含一些资源文件,如图像、.version文件等,以及publicCerts.store文件

所以为了将资源文件包含到最终的JAR中,我将所有的资源文件都指定为

-adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF,images/*.jar,*.version,publicCerts.store 
但在运行我的应用程序JAR时,我得到了执行选项-

 Exception in Application start method
    java.lang.reflect.InvocationTargetException
    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 com.javafx.main.Main.a(Main.java:642)
    at com.javafx.main.Main.main(Main.java:805)
    Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
    pl.java:403)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:
    47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.AssertionError: java.security.KeyStoreException: Uninitiali
    zed keystore
    at de.schlichtherle.license.LicenseNotary.getPublicKey(Unknown Source)
    at de.schlichtherle.license.LicenseNotary.verify(Unknown Source)
    at de.schlichtherle.license.LicenseManager.verify(Unknown Source)
    at de.schlichtherle.license.LicenseManager.verify(Unknown Source)

    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29
    )
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73)
    ... 1 more
    Caused by: java.security.KeyStoreException: Uninitialized keystore
    at java.security.KeyStore.isKeyEntry(Unknown Source)
    ... 17 more
我认为混淆会破坏publicCerts.store,所以请为publicCerts.store使用另一个混淆选项

-adaptresourcefilenames publicCerts.store
-adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF,images/*.jar,.version
它是有效的。当我过去双击by application jar时,它会显示我的应用程序窗口,但现在原生包可执行文件(exe)会在相同的情况下以相同的条件显示此对话框

已编辑-

I have debugged the issue and found that it's throwing exception - 
    java.lang.AssertionError: java.security.NoSuchAlgorithmException: PBEWithMD5AndDES SecretKeyFactory not available java.security.NoSuchAlgorithmException: PBEWithMD5AndDES SecretKeyFactory not available
我想知道本机包可执行文件(exe)是由同一个可执行文件组成的,但exe不工作。下面是部署应用程序和创建本机bundle exe的ANT步骤

<target name="CreatingExe" depends="SignedJar">
            <fx:deploy width="800" height="600" nativeBundles="all" outdir="${dist}" outfile="${app.name}">
                <fx:info title="${app.title}"/>
                    <fx:application name="${app.title}" mainClass="${main.class}"/>
                    <fx:resources>
                        <fx:fileset dir="${distBI}" includes="*.jar"/>
                <fx:fileset dir="${WorkingFolder}/temp"/>
            </fx:resources>
         </fx:deploy>
    </target> 

如何从混淆中排除publicCerts.store?为什么即使应用程序jar正在运行,最终的exe也无法运行?我是否需要在fx:deploy任务中指定任何其他内容?

在构建JavaFx本机捆绑包时,
下的
ext
文件夹不包括在内。这个文件夹包含的大部分是安全性方面的内容

<!--Copy the ext library to the runtime lib-->
<copydir src="${java.home}/lib/ext"
    dest="${dist.jar.dir}/bundles/{YOUR.PACKAGE.NAME}/runtime/jre/lib/ext"
    includes="**/*"
/>

<!--Copy the ext library to the runtime lib-->
<copydir src="${java.home}/lib/ext"
    dest="${dist.jar.dir}/bundles/{YOUR.PACKAGE.NAME}/runtime/jre/lib/ext"
    includes="**/*"
/>