gpt4 book ai didi

java - 如何使用 Proguard 的 GUI?防止混淆正确的类的问题

转载 作者:行者123 更新时间:2023-11-30 11:16:22 27 4
gpt4 key购买 nike

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

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

只要我不使用以下选项之一:优化、收缩或混淆,输出文件就会运行并显示我的计算器。但只要我想使用混淆器的这些选项之一(优化,收缩或混淆),输出文件不再运行。

主要方法在 cal.SwingCalculator 中,所以我添加了 cal.SwingCalculator 来保留额外的类名和类成员名。但它仍然不起作用。 (我在优化、收缩和混淆中将 cal.SwingCalculator 添加到屏幕底部)

例如,当我只使用混淆时,输出文件仍然会更改主要方法的名称。我使用了 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}

最佳答案

因为您有一个带有 main 方法的传统 Java 应用程序,您需要确保 ProGuard GUI 中的这个复选框被勾选:

(选项卡)收缩 >(面板)保持 >(复选框)应用程序

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

关于java - 如何使用 Proguard 的 GUI?防止混淆正确的类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com