Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ProGuard版本5.3.2是否支持JavaFx?_Java_Swing_Javafx_Proguard - Fatal编程技术网

ProGuard版本5.3.2是否支持JavaFx?

ProGuard版本5.3.2是否支持JavaFx?,java,swing,javafx,proguard,Java,Swing,Javafx,Proguard,我认为它应该支持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_1

我认为它应该支持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,是因为它们看起来像javafxjar文件,我需要做些什么才能使它与[JavaFx.embed.swing.JFXPanel]和[JavaFx.embed.swing.Media]一起工作?

可以使用ProGuard和JavaFx,您可能想看看javaf maven插件中的一个示例项目:

使用以下配置:

-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配置部分

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

com.github.wvengen
proguard maven插件
2.0.10
包裹
前卫
5.2
${java.home}/lib/rt.jar
${java.home}/lib/ext/jfxrt.jar
${java.home}/lib/jce.jar
net.sf.proguard
前卫基地
5.2.1
运行时

免责声明:我是javafx maven插件的维护者;)

可以使用ProGuard和JavaFX,您可能想看看javaf maven插件中的一个示例项目:

使用以下配置:

-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配置部分

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

com.github.wvengen
proguard maven插件
2.0.10
包裹
前卫
5.2
${java.home}/lib/rt.jar
${java.home}/lib/ext/jfxrt.jar
${java.home}/lib/jce.jar
net.sf.proguard
前卫基地
5.2.1
运行时

免责声明:我是javafx maven插件的维护者;)

我找到了答案,我不需要2个jar文件:jfxswt.jar&jfr.jar


但是我确实需要包括:/lib/ext/jfxrt.jar才能使它工作。

我找到了答案,我不需要两个jar文件:jfxswt.jar和jfr.jar

但我确实需要包括:/lib/ext/jfxrt.jar才能让它工作