关于.java编译成.class 与 .class反编译成.java问题
作者:小爷欣欣
了解下这两个文件类型
- .java文件是给人看的
- .class是给计算机看的
程序员编写的是.java文件,经编译后生成.class文件给计算执行。
相信这两句话很形象的说明了这两个文件的关系了。
1. 首先反编译器就是jd-gui这个软件了
可以把jar包直接拖进这个软件就能够看到代码了。当然jd-gui不能编译.class文件。
2. 怎么把.class转成.java文件呢?
也是在jd-gui文件里面。点击要转的文件,然后file-->save Source,如下图:
保存后就是.java文件了。当然可以直接保存整个jar包,也可以是单个文件。
3. eclipse里面怎么看.class文件?
新建的一个.java文件有.class的前提是要编译成功,比我常用的项目是maven工程,要先maven install编译才能生成“完整的”.class文件,单单保存是不行的,这里下面会有说明。
eclipse可以通过ctrl+shift+R,然后输入类名,可同时看到.class和.java文件。
4. 怎么编译单个的java文件呢?
方法有很多,这里我介绍个在dos命令中生成.class文件的办法。
首先在eclipse中新建个aa.java类,里面就啥都不写了,最好也别带汉字,不然后面编译的时候会报编码错误,找不到符合等各种错误。
然后拷到桌面上,打开dos命令,输入以下命令:
E:\jdk1.7\bin\javac.exe C:\Users\Administrator\Desktop\aa.java
解释:E:\jdk1.7\bin\javac.exe 是javac.exe的安装目录,其实找到jdk就行了。C:\Users\Administrator\Desktop\aa.java是刚才写的测试类,把他拷到桌面的位置。
最后Enter运行命令,运行成功的话就是可以再aa的目录下生成同名的.class文件了。如图:
这里对3解说下,编译单个文件的时候,如果这个类引入的有其他新建的类,就会编译报错,显示找不到符号,这个也很容易理解,因为实在javac虚拟机上执行的,我们写的测试类内容只能包含jdk自带的代码,对于我们引入自己新建类肯定是不识别的。
也就是在eclipse中虽然保存后有.class文件,但是不一定编译成功。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。