jad怎么反编到class

andrew064 2009-12-25 02:44:46
我将其中一两个class文件反编后,输出的是jad文件, 改为java就是源码啦, 我修改了之后, 又怎么返回到class文件呢,

用JDK 6 的javac 输出class 提示丢失包, 和很多个找不到符号, 请教一下该怎么做, 谢谢!!!
...全文
205 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
andrew064 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 huxiaowi 的回复:]
引用 8 楼 andrew064 的回复:
那如果没有源程序, 似乎是无法再编译回去的是吗?


有~较笨的方法:
假造它的依赖类。。。骗过编译器。
[/Quote]

请教你的方法, 谢谢!
andrew064 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 huxiaowi 的回复:]
引用 15 楼 andrew064 的回复:
为什么反编class为jad的时候不需要这些包,现在要把java编绎成class却需要呢?


编译原理LZ大学没学过么?
java编译器编译源文件时会进行词法分析、语法分析、语义分析...

而JAD不是一个编译器。。。
[/Quote]
不好意思, 我英语专业的, JAVA第一次接触, 我是有用到才去了解一点, 大家不要见怪.
andrew064 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 inkfish 的回复:]
2.再编译的时候原先依赖的calss、jar找不到。
如果遇到第二点,可以把原先的class打成jar,作为classpath的一部分去编译,就能成功。
[/Quote]
这个方法等下试试
墨水鱼 2009-12-25
  • 打赏
  • 举报
回复
反编译命令:jad -sjava *.class,者可以把一个目录下所有class反编译成.java文件,无需修改后缀名。
但是再编译取决于两点:
1.是否反编译的是合法的java代码,反编译完,往往try catch finally会反编译错误。
2.再编译的时候原先依赖的calss、jar找不到。
如果遇到第二点,可以把原先的class打成jar,作为classpath的一部分去编译,就能成功。
ChDw 2009-12-25
  • 打赏
  • 举报
回复
jar里面的类不需要再反编译了,你只需要javac -classpath t.jar A.java就可以了


JAD不需要是转为Class中已经声明了清楚要调用的方法、成员的准确名称。所以可以反编译出来

但是在编译的时候,javac 就需要知道callMethod(....)这样一个语句时,方法的参数是什么、有什么成员变量等。
huxiaowi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 andrew064 的回复:]
那如果没有源程序, 似乎是无法再编译回去的是吗?
[/Quote]

有~较笨的方法:
假造它的依赖类。。。骗过编译器。
huxiaowi 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 andrew064 的回复:]
为什么反编class为jad的时候不需要这些包,现在要把java编绎成class却需要呢?
[/Quote]

编译原理LZ大学没学过么?
java编译器编译源文件时会进行词法分析、语法分析、语义分析...

而JAD不是一个编译器。。。
andrew064 2009-12-25
  • 打赏
  • 举报
回复
为什么反编class为jad的时候不需要这些包,现在要把java编绎成class却需要呢?
andrew064 2009-12-25
  • 打赏
  • 举报
回复
我找到包了, 是.jar格式的, 应该把这个文件放到哪里, 要不要先把里面的class先反编成java文件, 然后放到对应的目录下?
ChDw 2009-12-25
  • 打赏
  • 举报
回复
是没有找到com.jason.core.exception 包,并不是指 com.jason.core.exception.class文件

你应该去找到这个class所在的系统中找这个包
蒋涛666 2009-12-25
  • 打赏
  • 举报
回复
我也想知道这个问题!
andrew064 2009-12-25
  • 打赏
  • 举报
回复
有提示, 软件包 com.jason.core.exception 不存在
但是找不到exception.class这个文件,
ChDw 2009-12-25
  • 打赏
  • 举报
回复
你应该找到这两个Class所依赖的jar才可以进行编译。
liurui03263348 2009-12-25
  • 打赏
  • 举报
回复
如果你那两个java文件调用了其它包的话,那就无法编译回去,除非你把这两个文件所调用的包也反编译成java文件,然后在重新运行编译才行!
andrew064 2009-12-25
  • 打赏
  • 举报
回复
那如果没有源程序, 似乎是无法再编译回去的是吗?
liurui03263348 2009-12-25
  • 打赏
  • 举报
回复
如果你想把修改后的.java文件在编译回去的话,你这能把它放回源程序重新运行!我就遇到过这种问题!
andrew064 2009-12-25
  • 打赏
  • 举报
回复
我设置了path, classpath 结果还是同样的提示, 郁闷....

系统变量下新建Classpath
.;C:\Program Files\Java\jdk1.6.0_13\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_13\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_13\lib\jconsole.jar

path后面添加
;C:\Program Files\Java\jdk1.6.0_13\bin

没错吧,
huxiaowi 2009-12-25
  • 打赏
  • 举报
回复
参照三楼。。。
andrew064 2009-12-25
  • 打赏
  • 举报
回复
不行啊, 我只是针对其中某两个文件反编, 用javac 都提示找不到包和找不到符号
huxiaowi 2009-12-25
  • 打赏
  • 举报
回复
那是你的CLASSPATH没设置好。。。
加载更多回复(2)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧