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

问题描述 投票:0回答:1

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

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

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

java obfuscation javac
1个回答
7
投票

默认情况下,

javac
不包含生成的
class
文件中的调试信息。该信息例如方法参数名称(但始终存储方法和字段名称以允许反射)。当参数名称未知时,JD-GUI和其他反编译器会编造一些合理的名称。它们并没有被混淆——只是它们不存在而已。

使用

-g
标志编译代码:

javac -g SomeClass.java

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

© www.soinside.com 2019 - 2024. All rights reserved.