【发布时间】:2014-04-25 13:08:39
【问题描述】:
我已经开发了一段时间的游戏,我试图通过在几个地方使用一个变量而不是在每个地方都写变量值来使这个游戏尽可能易于理解并且易于更改因此,如果我决定更改值,我不必在任何地方都更改它,我只需要更改变量的值。 两天前,我格式化了我的电脑并在我的外部硬盘驱动器中保存了一个 .Jar 文件 游戏和 Eclipse(编码环境)文件夹,我认为游戏源应该位于其中,但它并没有因此丢失我的源代码。 我很沮丧,但后来我记得你可以反编译一个 jar 文件。 我搜索了一个反编译器,发现 jd gui 反编译器打开了我的 jar 文件,我很高兴 看看它确实有效,但后来......我注意到代码有点不同。 编译器添加了大量的这个。所有对我来说无关紧要的课程。 然后我注意到每个有双类型数字的地方都添加了一个 .0 和一个 D 在数字的末尾,甚至在一些地方,例如 0.7,我看到有 0.699999996,这又无关紧要,没什么大不了的。 但后来我注意到,在我有一个最终变量的所有地方,它都将其更改为它的值(例如:应该是:numRowsToDraw = Panel.WIDTH / tileHeight + 2; 现在是什么:numRowsToDraw = 768 / tileHeight + 2;) 这破坏了程序所有易于更改的方面,我不想更改 把数字传回变量的所有地方都应该有变量,因为这需要大量的工作。
所以我的问题是:有没有不改变你的代码的反编译器? 有的话可以告诉我名字吗?
谢谢!
哦,我忘了提到我后来尝试了 JAD 反编译器,它做了同样的事情......
【问题讨论】:
-
不幸的是,编译器会像
Panel.WIDTH这样内联常量值,因此反编译器无法知道您最初引用了一个命名常量。