2017-02-18 4 views
0

私はそれは、Java 8のJavaFXのを支援すべきであると思ったが、私はそれを実行したときに、私は次のように得た:ProGuardバージョン5.3.2は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 

彼らはJavaFXのjarファイルのように見えるので、私は、jfxswt.jar & jfr.jarを含め、私は何が必要なのですか[javafx.embed.swing.JFXPanel]と[javafx.embed.swing.Media]で動作させるにはどうすればいいですか?

答えて

2

が、私は2 jarファイルを必要としません:jfxswt.jar & jfr.jar。

しかし、それを動作させるには、/lib/ext/jfxrt.jarをインクルードする必要があります。

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 *; 
} 

EDIT:ドキュメント・完全性について、不足しているPOM-の構成部分

<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ののメンテナだ、私は答えを見つけた)

関連する問題