.java编译成.class 与 .class反编译成.java

.java编译成.class 与 .class反编译成.java.java编译成.class 与 .class反编译成.java

大家好,又见面了,我是你们的朋友全栈君。

了解下这两个文件类型:.java文件是给人看的,.class是给计算机看的。程序员编写的是.java文件,经编译后生成.class文件给计算执行。

相信这两句话很形象的说明了这两个文件的关系了。

1,首先反编译器就是jd-gui这个软件了,可以把jar包直接拖进这个软件就能够看到代码了。当然jd-gui不能编译.class文件。

2,怎么把.class转成.java文件呢?也是在jd-gui文件里面。点击要转的文件,然后file–>save Source,如下图:

.java编译成.class 与 .class反编译成.java

保存后就是.java文件了。当然可以直接保存整个jar包,也可以是单个文件。

3,eclipse里面怎么看.class文件?新建的一个.java文件有.class的前提是要编译成功,比我常用的项目是maven工程,要先maven install编译才能生成“完整的”.class文件,单单保存是不行的,这里下面会有说明。eclipse可以通过ctrl+shift+R,然后输入类名,可同时看到.class和.java文件。

.java编译成.class 与 .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文件了。如图:

.java编译成.class 与 .class反编译成.java

.java编译成.class 与 .class反编译成.java

这里对3解说下,编译单个文件的时候,如果这个类引入的有其他新建的类,就会编译报错,显示找不到符号,这个也很容易理解,因为实在javac虚拟机上执行的,我们写的测试类内容只能包含jdk自带的代码,对于我们引入自己新建类肯定是不识别的。也就是在eclipse中虽然保存后有.class文件,但是不一定编译成功。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106105.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • die名词_ddr读写时序

    die名词_ddr读写时序ODT是什么鬼?为什么要用ODT?在很多关于DDR3的博文和介绍中都没有将清楚。在查阅了很多资料并仔细阅读DDR3的官方标准(JESD79-3A)之后,总算有点了头绪,下面来整理整理。1、首先ODT是什么?ODT(On-DieTermination),是从DDR2SDRAM时代开始新增的功能。其允许用户通过读写MR1寄存器,来控制DDR3SDRAM中内部的终端电阻的连接或者断开。在DDR…

  • 反射之动态拼接sql字符串「建议收藏」

    反射之动态拼接sql字符串「建议收藏」反射之动态拼接sql字符串前言自己在学习JDBC连接数据库,不用框架手动实现时,个人觉得反射动态拼接sql的思想很好,当然了大家伙觉得好才是真的好(广州好迪,手动狗头),所以才有了本文对该知识点梳理与总结。分享给大家,下面开始步入文章的正文,亲们不要掉队。正文…

  • CLion 2021.5.3激活码(最新序列号破解)

    CLion 2021.5.3激活码(最新序列号破解),https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 本工作站与主域失去信任_电脑域改为工作组后无法登录

    本工作站与主域失去信任_电脑域改为工作组后无法登录Windows7系统在WindowsServer2003中的加域问题,加域时提示:此工作站和主域间的信任关系失败。故障原因:故障原因:这个问题是由于登陆windowsserver2003的域控制器(DC)的网络服务是服务器无法辨识其DS_WEB_SERVICE_REQUIRED值引起的。简单点儿来说,就是服务器不认windows7.了解计算机七层协议的人都知…

    2022年10月18日
  • C# DateTimePicker:日期时间控件「建议收藏」

    C# DateTimePicker:日期时间控件「建议收藏」日期时间控件(DateTimePicker)在时间控件中的应用最多,主要用于在界面上显示当前的时间。Format属性提供了4个属性值,如下所示。Short:短日期格式,例如2017/3/1;Long:长日期格式,例如2017年3月1日;…

  • Python 学习笔记 列表 for 循环 xxx XXX

    Python 学习笔记 列表 for 循环 xxx XXXPython学习笔记列表for循环xxxXXXprint(“-“*30)magicians=[‘alice’,’david’,’carolina’]formagicianinmagicians: print(magician)formagicianinmagicians: print(magician.title()+”,thatwasagreattrick!”) print(“I…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号