Deployment 模糊的javafxjar中的FXML可以';找不到控制器类

Deployment 模糊的javafxjar中的FXML可以';找不到控制器类,deployment,ant,javafx-2,obfuscation,fxml,Deployment,Ant,Javafx 2,Obfuscation,Fxml,我正在使用Proguard 4.8对javafx应用程序jar进行模糊处理,模糊处理的jar显示jar中缺少一些类。缺少的类是FXML的所有控制器类。build.xml中的这一步骤有什么问题,它用另外两个实用程序JAR混淆了应用程序JAR <target name="Ofuscating" depends="CreatingJars" > <taskdef resource="proguard/ant/task.properties" classpath="${Work

我正在使用
Proguard 4.8
对javafx应用程序jar进行模糊处理,模糊处理的jar显示jar中缺少一些类。缺少的类是FXML的所有控制器类。
build.xml
中的这一步骤有什么问题,它用另外两个实用程序JAR混淆了应用程序JAR

<target name="Ofuscating" depends="CreatingJars" >
    <taskdef resource="proguard/ant/task.properties" classpath="${WorkingFolder}/proguard.jar" />
    <proguard>
        -dontusemixedcaseclassnames
        -printmapping proguard.map
        -dontshrink
        -dontoptimize
        -dontskipnonpubliclibraryclasses
        -dontskipnonpubliclibraryclassmembers
        <!--flattenpackagehierarchy ''-->
        -libraryjars "${java.home}/lib/rt.jar"
        -libraryjars "${java.home}/lib/javaws.jar"
        -libraryjars "${env.JAVA_HOME}/lib/ant-javafx.jar"
        -libraryjars "${env.JREFX_HOME}/lib/jfxrt.jar"          
        -libraryjars ${WorkingFolder}/libs/BareBonesBrowserLaunch.jar
        :
        :
        -libraryjars ${WorkingFolder}/CustomJars/Lib.jar 
        -injars ${WorkingFolder}/${app.name}.jar
        -injars ${WorkingFolder}/CustomJars/Verifier.jar(!META-INF/MANIFEST.MF)
        -injars ${WorkingFolder}/CustomJars/Utility.jar(!META-INF/MANIFEST.MF)
        -outjars ${WorkingFolder}/Obfuscated.jar
        -ignorewarnings
        -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod
        -adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF,images/*.jar,publicCerts.store,production.version
        -keepclassmembernames class * {
            @javafx.fxml.FXML *;
        } 
        -keepclasseswithmembers public class com.javafx.main.Main, com.product.main.EntryFX, net.license.LicenseEntryPoint {
            public *; public static *;
        }
        -keep class * extends org.xml.sax.helpers.DefaultHandler
        -keepclassmembers class * extends org.xml.sax.helpers.DefaultHandler {
            private *;
                public *;
        }
    </proguard>
</target>

-dontusemixedcaseclassnames
-printmapping proguard.map
-dontshrink
-dontoptimize
-DontskipnonPublicLibraryClass
-dontskipnonpubliclibraryclassmembers
-libraryjars“${java.home}/lib/rt.jar”
-libraryjars“${java.home}/lib/javaws.jar”
-libraryjars“${env.JAVA_HOME}/lib/antjavafx.jar”
-libraryjars“${env.JREFX_HOME}/lib/jfxrt.jar”
-libraryjars${WorkingFolder}/libs/BareBonesBrowserLaunch.jar
:
:
-libraryjars${WorkingFolder}/CustomJars/Lib.jar
-injars${WorkingFolder}/${app.name}.jar
-injars${WorkingFolder}/CustomJars/Verifier.jar(!META-INF/MANIFEST.MF)
-injars${WorkingFolder}/CustomJars/Utility.jar(!META-INF/MANIFEST.MF)
-outjars${WorkingFolder}/Obfuscated.jar
-忽视警告
-keepattributes异常、内部类、签名、已弃用、源文件、LineNumberTable、LocalVariable*表、*注释*、合成、封闭方法
-AdapterResourceFileContents**.fxml、**.properties、META-INF/MANIFEST.MF、images/*.jar、publicCerts.store、production.version
-keepclassmembernames类*{
@javafx.fxml.fxml*;
} 
-KeepClassSwithMembers公共类com.javafx.main.main、com.product.main.EntryFX、net.license.LicenseEntryPoint{
公共*;公共静态*;
}
-keep class*扩展org.xml.sax.helpers.DefaultHandler
-keepclassmembers类*扩展org.xml.sax.helpers.DefaultHandler{
私人*;
公众*;
}

.fxml
文件中包含带有控制器类确切名称的字符串

<Scene width="550" height="550"
    fx:controller="fxmltableview.FXMLTableViewController" 
    xmlns:fx="http://javafx.com/fxml">

您需要将控制器排除在模糊处理之外,或者找出它们的新名称,并更新模糊化jar中的
.fxml
文件