2017-02-18 23 views
0

Я думал, он должен поддерживать JavaFX Java 8, но когда я бежал, я получил следующее:Поддерживает ли 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 

Я включил jfxswt.jar & jfr.jar, потому что они кажутся баночка файлов JavaFX, что мне нужно сделать, чтобы он работал с [javafx.embed.swing.JFXPanel] и [javafx.embed.swing.Media]?

ответ

2

Я нашел ответ, я не нужны файлы 2 фляги: jfxswt.jar & jfr.jar.

Но мне нужно включить: /lib/ext/jfxrt.jar, чтобы он работал.

1

можно использовать ProGuard и JavaFX, вы можете захотеть взглянуть на пример-проект от javaf-Maven-плагин: используется

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: для документации полноты, отсутствующего пОМ-конфигурационной части

<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-плагин;)