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
文件