我从事 Java 开发,我想知道是否有 Java 混淆器可以安装在带有 GNOME 3.20 的 Ubuntu GNOME 16.04 上?我可以给它代码,它会执行一些操作,例如将所有代码放在一行上并删除所有缩进,将函数和变量名称等更改为随机值等,通常使代码更难阅读和反编译。如果它能让我选择对代码执行哪些操作(如果不是全部操作),那就太好了。
答案1
Proguard 可以做到这一点,而且 — — 最重要的是 — — 它可以保存在档案中:
sudo apt-get install proguard
用法
假设您有一个文件HelloWorld.java
:
public class HelloWorld {
public static void main(String[] args) {
showMessage();
}
private static void showMessage() {
System.out.println("Hello World!");
}
}
您首先需要使用以下命令进行编译:
javac HelloWorld.java
然后你可以创建一个 JAR:
jar cfe HelloWorld.jar HelloWorld HelloWorld.class
通过 Proguard 运行它非常简单:
proguard @config.pro
...哪里config.pro
:
-injars HelloWorld.jar
-outjars HelloWorld_out.jar
-libraryjars /path/to/rt.jar
-keep public class HelloWorld {
public static void main(java.lang.String[]);
}
笔记:将路径更改libraryjars
为适合您的 JDK 的路径。例如,如果您使用 OpenJDK 8 进行编译,请使用以下路径:
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar