社区
Web 开发
帖子详情
为什么将class源文件反编译回来会报错,包存在。
wangmohan44
2011-10-17 10:42:23
在将class源文件反编译回来变成java文件后,与原来的java文件不一致,修改了一些变量名,而且有一些for循环中的“{”、“}”也没有了,如果想反编译后的java文件和原java文件一致该怎么办,现在反编译用的工具是jd-gui,xjad都有这个问题。如果是工具问题希望提供下载地址,或发到我邮箱529109762@qq.com。谢谢
...全文
635
9
打赏
收藏
为什么将class源文件反编译回来会报错,包存在。
在将class源文件反编译回来变成java文件后,与原来的java文件不一致,修改了一些变量名,而且有一些for循环中的“{”、“}”也没有了,如果想反编译后的java文件和原java文件一致该怎么办,现在反编译用的工具是jd-gui,xjad都有这个问题。如果是工具问题希望提供下载地址,或发到我邮箱529109762@qq.com。谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangmohan44
2011-10-18
打赏
举报
回复
啥小动作哦,有些工作需要而已
xiaozhuangfeng
2011-10-18
打赏
举报
回复
一般不会需要反编译的吧,莫非lz想干点啥小动作
wangjiangbo2
2011-10-18
打赏
举报
回复
[Quote=引用 4 楼 wangmohan44 的回复:]
2楼难道有办法,求教
[/Quote]
没搞过,以前的单位碰到这类问题,都是由总工把翻译完的程序补齐,难易程度不了解。
有时间可以自己试试
wangmohan44
2011-10-18
打赏
举报
回复
2楼难道有办法,求教
wangmohan44
2011-10-18
打赏
举报
回复
难道没一点办法吗?我想既然能够编译成class文件,那肯定有class与java编译的一定规则的,能编过来应该也可以能编译回去,我是这样觉得的啊,求解决
wangjiangbo2
2011-10-18
打赏
举报
回复
想要还原成java原文件,好像不简单呐。
wangmohan44
2011-10-18
打赏
举报
回复
那如果按照你所说,变量名会被该掉,那应该是所有的都存在这个问题吧,但是在反编译后,只有个别类中的变量存在这个问题,而有些类却是没有报错的,而且编译后还会添加一些莫名其妙的"单词",这又是怎么回事呢?求完整点的解释或解决方案
疯癫行者
2011-10-18
打赏
举报
回复
[Quote=引用 3 楼 wangmohan44 的回复:]
难道没一点办法吗?我想既然能够编译成class文件,那肯定有class与java编译的一定规则的,能编过来应该也可以能编译回去,我是这样觉得的啊,求解决
[/Quote]
看来你还是不死心,说说原因给你:
源文件是给人看的,所以源文件里面变量有名字,而且易读,类文件是给计算机看的,他没有必要保留变量名,所以编译的时候丢掉了。所以反编译的时候,到哪儿去找变量名呢?
至于括号,右括号和没有括号只是两种不同的代码风格,这不是编译器本身的问题,如果你非要改成你自己的样子,那你可以找编辑器工具帮你完成。
疯癫行者
2011-10-17
打赏
举报
回复
好像不行,反编译器怎么能知道原来是什么格式呢?怎么能知道原来代码定义的变量名是什么呢?我觉得楼主不要想这个问题了,几乎是不可能的,因为类文件并不保持java文件的全部格式的。
class
反编译
背景:前几天在项目开发的时候遇到一个问题,那就是利用myeclipse编写好的一个项目打
包
成jar
包
后上传部署到服务器里,之后本地的项目被自己改来改去出现了一些问题,想着把上传到服务器里面的war
包
下载下来重新利用,大家都知道,war
包
里面的内容解压下来后java文件已经被编译成
class
文件了,期初用的是一款名为“jd-gui”的工具来
反编译
,这个很方便,不过缺点是只能一个一个的进行编译...
使用IDEA的
反编译
插件
反编译
jar
包
/
class
文件/修改jar
包
Java
反编译
还能这么玩?
使用IDEA插件
反编译
jar
包
项目上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就
会
遇到没有日志的,遇到这种情况,只能去看日志的
报错
行数是哪里,否则,无从下手。3. 找到IDEA安装路径后,我们就可以找到插件的安装路径在 plugins 文件夹下面,找到 java-decompiler。4.2 通过 Git Bash Here 的方式
反编译
,在当前目录下右键Git Bash Here,输入上面的命令回车。4.1 通过 cmd 的方式
反编译
,输入 cmd 回车,输入上面的命令回车。
反编译
jar
包
,修改后重新编译为jar
包
使用开源jar
包
或者供应商jar
包
时,
会
发现一些bug或者已有功能无法满足我们要求,需要对jar中的.
class
文件进行修改。处理步骤如下所示: 1.使用
反编译
工具将jar
包
反编译
为
源文件
反编译
工具请参考XJAD2.2版下载地址:http://www.blogjava.net/Files/96sd2/XJad2.2.rar 如果只是少量的几个
class
需要修改,可以直接用IDEA或者jd-gui工具打开,将.
class
文件中的内容直接复制并创建同名的.java文件(需要根据jar
包
中建立所有的上层目
修改jar
包
中
class
文件
需求:银行跑批任务执行时要调用行方自己的短信平台给科技部人员发送短信,行方提供一个jar文件,通过shell脚本传参调用即可。 问题点:shell脚本调用jar
包
没太大问题,关键在于,需要在jar
包
中的某个类中配置短信平台的用户名、密码。 解决方案:将jar
反编译
—>保存为.java文件—>修改文件内容—>重新编译—>将原来jar
包
解压—>替换
class
文件—&g...
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章