如何使用Proguard的GUI?保持正确的类不被混淆的问题

时间:2014-07-23 11:23:00

标签: java eclipse user-interface jar proguard

我使用Eclipse制作我的Java项目。 现在我已经制作了一个计算器并将其导出为可运行的jar文件。 这个计算器已由老师检查,它正在运行。 我可以发布完整的代码,但是你看到它是没有意义的。

现在我试图混淆.jar文件。 我已经下载了proguard 5.0 beta 2来执行此操作。 在目录lib中,有一个名为 proguardgui .jar的文件。我使用这个jar文件来处理我的文件。

只要我不使用其中一个选项:优化,缩小或混淆,输出文件就会运行并显示我的计算器。但是只要我想使用其中一个proguard选项(优化,收缩或混淆),输出文件不再运行。

主要方法是在cal.SwingCalculator中,所以我添加了cal.SwingCalculator来保存其他类名和类成员名。但它仍然无法奏效。 (我已经将cal.SwingCalculator添加到屏幕底部进行优化,收缩和混淆)

例如,当我只使用模糊处理时,输出文件仍将更改main方法的名称。我曾使用Java反编译器检查结果。

输出文件怎么可能不起作用?

当我添加需要保留的班级名称时,是否需要检查选项卡访问权限下的所有框,或者是否可以将其设置为不关心?

我做了本视频中提到的所有内容: https://www.youtube.com/watch?v=vTgWPiRUCu4

# package cal; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

class SwingCalculator {
 public static void main(String[] args) {
 JFrame frame = new Calculator();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);
  }
}

另一类的一部分:

package cal;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

class Calculator extends JFrame {Lots of code}

1 个答案:

答案 0 :(得分:1)

由于您的传统Java应用程序具有main方法,因此您需要确保在ProGuard GUI中勾选此复选框:

(标签)收缩> (小组)保持> (复选框)应用程序

它保留所有具有主要方法的类以及主要方法本身。