我试图混淆JavaFX应用程序但事实证明,在编译和测试应用程序之后,有太多例外的Java方法缺失。
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.0.7</version>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>5.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>5.0</proguardVersion>
<obfuscate>true</obfuscate>
<injarNotExistsSkip>true</injarNotExistsSkip>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}.jar</outjar>
<!--
<outputDirectory>${project.build.directory}</outputDirectory>
-->
<options>
<option>-keep public class test.ofluscationtest.MainApp{public static void main(java.lang.String[]);}</option>
<!-- <option></option> -->
</options>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
<lib>${java.home}/lib/ext/jfxrt.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
</configuration>
</plugin>
有没有办法配置Proguard插件来混淆Java方法列表?没有找到jar文件中的任何Java代码。
答案 0 :(得分:2)
我不确定你是否可以混淆一些方法(很可能不是)芽我确定你可以选择你想要混淆的类
-keep class !com.myapp.myclass { *; }
因此,您可以通过这种方式设计代码(如果可能)并保持其他部分不变。
请记住这一点。它不会是一些强烈的混淆。更多的是你混淆它变得越强。当谈到去混淆时,很容易接近原始的源代码。