我认为它应该支持Java 8的JavaFx,但是当我运行它时,我得到了以下内容:
ProGuard, version 5.3.2
Reading input...
Reading program jar [C:\Dir_myApp\dist\App.jar]
Reading library jar [C:\Program Files\Java\jre1.8.0_111\lib\rt.jar]
Reading library jar [C:\Program Files\Java\jre1.8.0_111\lib\jce.jar]
Reading library jar [C:\Program Files\Java\jre1.8.0_111\lib\jfxswt.jar]
Reading library jar [C:\Program Files\Java\jre1.8.0_111\lib\jfr.jar]
Initializing...
Warning: App: can't find referenced class javafx.embed.swing.JFXPanel
Warning: App: can't find referenced class javafx.scene.media.Media
我收录了jfxswt.jar& jfr.jar因为它们看起来像JavaFx jar文件,我需要做些什么才能使它与[javafx.embed.swing.JFXPanel]和[javafx.embed.swing.Media]一起使用?
答案 0 :(得分:2)
我找到了答案,我不需要2个jar文件:jfxswt.jar& jfr.jar。
但我确实需要包含:/lib/ext/jfxrt.jar才能使其正常工作。
答案 1 :(得分:1)
可以使用ProGuard和JavaFX,您可能需要查看来自javaf-maven-plugin的示例项目:
https://github.com/javafx-maven-plugin/javafx-maven-plugin/tree/master/src/it/08-build-with-proguard
使用以下配置:
-dontoptimize
# Save meta-data for stack traces
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
# Rename FXML files together with related views
-adaptresourcefilenames **.fxml,**.png,**.css
-adaptresourcefilecontents **.fxml
-adaptclassstrings
# Keep all annotations and meta-data
-keepattributes *Annotation*,Signature,EnclosingMethod
# Keep entry-point class
-keep class com.zenjava.test.javafx_and_proguard.MainApp {
public static void main(java.lang.String[]);
}
# Keep all classes inside application
-keep,allowobfuscation class com.zenjava.test.javafx_and_proguard.** {
}
# Keep names of fields marked with @FXML attribute
-keepclassmembers class * {
@javafx.fxml.FXML *;
}
编辑:对于文档完整性,缺少pom-configuration-part
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.10</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>5.2</proguardVersion>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/ext/jfxrt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
</libs>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.2.1</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
免责声明:我是javafx-maven-plugin的维护者;)