Java编译器自动重命名参数(混淆)

标签 java compiler-construction obfuscation javac

当我编译我正在编写的代码,然后在 JD Gui 中查看时,方法显示带有如下标题:

public void growSurface(Random paramRandom, int paramInt1, int paramInt2){

我正在通过 .bat 文件进行编译。有没有办法指定我不想混淆代码。

最佳答案

默认情况下 javac 不在生成的 class 文件中包含调试信息。此信息是例如方法参数名称(但方法和字段名称总是被存储以允许反射)。当参数名称未知时,JD-GUI 和其他反编译器正在编一些合理的名称。它们没有被混淆 - 只是它们不存在。

使用 -g 标志编译您的代码:

javac -g SomeClass.java

刚刚检查了 JD-GUI - 它显示了正确的参数名称。

关于Java编译器自动重命名参数(混淆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041506/

相关文章:

java - 如何将日历的时间与java.sql.Time对象进行比较?

java - Slick2d True Type 字体的自动换行

c++ - 在 C++ 解析器可以区分比较和模板实例化之前,它会做什么?

java - 如何混淆tomcat日志文件中的请求属性

c - 混淆基于 C 的二进制文件以避免反编译

java - 使用java泛型添加2种类型的参数

java - 怎样才称得上是带有GUI的简单Java程序呢?

c++ - 在线编译器检查执行时间

c++ - 一切都不稳定

java - 使用 Proguard GUI 进行混淆,在没有配置文件的情况下保持类