新手不懂就问: Java 中怎么将项目的 Jar 包转为代码呢?

2020-11-25 10:13:03 +08:00
 will2zuo

尝试用过 JD-GUI,但是转出来的代码不能用

4980 次点击
所在节点    Java
25 条回复
tikazyq
2020-11-25 11:10:19 +08:00
怎么把一坨屎逆向为食物?
will2zuo
2020-11-25 11:20:20 +08:00
@tikazyq 你觉得你很幽默?
motoude
2020-11-25 11:36:26 +08:00
@will2zuo 话糙理不糙
dethan
2020-11-25 11:42:16 +08:00
idea 可以吧
statement
2020-11-25 11:46:03 +08:00
转出来是给你看的。不是给你用的 告诉你屎是什么食物变的
cheng6563
2020-11-25 11:52:08 +08:00
http://www.javadecompilers.com/
多试几个反编译器,一般 Fernflower 会比较好用
lqw3030
2020-11-25 12:52:09 +08:00
解压出来,然后作为项目用 idea 打开
Joker123456789
2020-11-25 12:57:51 +08:00
一般 编译的时候,编译器会对源码做优化。 而反编译是将字节码反向编译成源码, 但是字节码是对源码优化后编译而成的,

所以反编译出来的东西 跟源码是两码事,可读性非常差。
est
2020-11-25 13:04:24 +08:00
其实 @tikazyq 的比喻糙了一点。更好的比喻是,怎么把香肠还原成活猪?怎么把面包还愿成麦子?
securityCoding
2020-11-25 13:09:27 +08:00
拖到 idea 能自动反编译
RedBeanIce
2020-11-25 13:40:48 +08:00
拖到 idea 能自动反编译
itsql
2020-11-25 13:50:52 +08:00
直接用肯定不能用啊,换个方式就可以了啊
nicevar
2020-11-25 14:00:56 +08:00
我不知道你是怎么想的,既然你想直接用为什么不用 jar 包?如果只想用部分代码,反编译出来代码你参考修改一下不就行了,难道你连这点都做不到?
will2zuo
2020-11-25 14:02:57 +08:00
@nicevar 意思是,公司的代码在服务器上跑,但是只有 jar 包,然后仓库里也没有,现在需要改这个项目。。
kingfalse
2020-11-25 14:12:59 +08:00
javassist,完美解决,我们有个很老的项目只有 jar 包我就是用这个搞定的,不过改动比较小
xiaoliu926
2020-11-25 14:13:08 +08:00
@will2zuo jar 包拖到 idea 里就能查看源码了。。。原样复制一份
kingfalse
2020-11-25 14:14:36 +08:00
反编译就算了,出来的都是残疾
nicevar
2020-11-25 15:12:35 +08:00
@will2zuo 那你应该找公司的负责人要代码,一个项目的 jar 包除非少量的代码,否则肯定不可能反编译后能直接用的,你这不现实,解决办法就三个一就是找到源码、二是反编译成源码依葫芦画瓢、三就是反编译字节码修改(这个只适合小改动)。
fengpan567
2020-11-25 15:39:48 +08:00
反编译出来也用不了,如果是代码多的复杂工程,那就 GG 了
PVG
2020-11-25 23:08:21 +08:00
jd-gui,反编译工具一大堆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728982

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX