问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何将class文件转换成java源文件

发布网友 发布时间:2022-04-20 23:04

我来回答

5个回答

好二三四 时间:2022-05-19 16:03

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

class转java是什么,让我们一起了解下?

在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。


获取Class实例的三种方式:


(1)利用对象调用getClass()方法获取该对象的Class实例;


(2)使用Class类的静态方法forName(),用类的名字获取一个Class实例(staticClass forName(StringclassName)  Returns the Classobject associated with the class or interface with the given stringname. );


(3)运用.class的方式来获取Class实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的Class实例在newInstance()调用类中缺省的构造方法ObjectnewInstance()(可在不知该类的名字的时候,常见这个类的实例) Creates a new instance of the class represented by this Classobject.

在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象。


实际案例代码如下:


1 public class ClassTest {undefined
2 public static void main(String [] args)throws Exception{undefined
3 String str1="abc";
4 Class cls1=str1.getClass();
5 Class cls2=String.class;
6 Class cls3=Class.forName("java.lang.String");
7 System.out.println(cls1==cls2);
8 System.out.println(cls1==cls3);
9 }
10 }

返回结果为:true,true.

解释:虚拟机只会产生一份字节码, 用这份字节码可以产生多个实例对象。

以上就是小编今天的分享了,希望可以帮助到大家。

热心网友 时间:2022-05-19 13:11

需要把.class反编译.java才可以
找到eclipse下的插件,叫jadclipse,安装好之后,只要双击.class文件,就能直接看源文件,包括jar包中的class文件,也可以直接反编译。
1.下载jad1.5.8e
下载后解压。解压缩后将jad.exe拷贝到JRE的bin目录下,如d:/Java/jre1.5/bin
2.下载net.sf.jadclipse_3.2.4.jar
3.安装插件,有如下两种方法
A.将net.sf.jadclipse_3.2.4.jar复制到D:/leaf/eclipse/plugins目录下。
B.在d:/leaf下建立ecliplsePlungin/jadclipse/eclipse/plugins目录,将net.sf.jadclipse_3.2.4.jar放到该目录。在d:/leaf/eclipse/links下建jadclipse.link,内容为path=d/://leaf//ecliplsePlungin//jadclipse
3.启动Eclipse后,在Windows(窗口)-->Perference(首选项)-->Java下面应该会多出一个JadClipse目录,相关的设置可以在此修改配置jadclipse:设置path to decompiler为jad.exe的全路径,如:d:/Java/jre1.5/bin/jad.exe,在Directory for temporary files中指定临时文件的路径,如:C:/Java/temp
4、在Eclipse的Windows-->Perference-->General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”
5、安装完成,双击class文件,Eclipse将自动反编译了。
6、把*.java 和*.class文件放在同一文件夹下,在反编译时它回自动去寻找*.java的文件。
反编译工具jad简单用法
以下假设jad.exe在c:/java目录下
一、基本用法
Usage: jad [option(s)]
直接输入类文件名,且支持通配符,如下所示。
c:/java/>jad example1.class
c:/java/>jad *.class
结果是将example1.class反编译为example1.jad。将example1.jad改为example1.java即得源文件。
二、Option -o
不提示,覆盖源文件
三、Option -s
c:/java/>jad -sjava example1.class
反编译结果以.java为扩展名。
四、Option -p
将反编译结果输出到屏幕
c:/java/>jad -p example1.class
将反编译结果重定向到文件
c:/java/>jad -p example1.class>example1.java
五、Option -d
指定反编译的输出文件目录
c:/java/>jad -o -dtest -sjava *.class

热心网友 时间:2022-05-19 14:29

下载一个反编译工具,像java decompiler

热心网友 时间:2022-05-19 16:04

反编译,但是反编译的结果只供参考。

热心网友 时间:2022-05-19 17:55

反编译工具
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 求一牛逼的QQ个性分组, Java源文件和编译后的文件扩展名分别为 经典QQ分组 java中上传文件时如何修改文件名 求一些QQ个性分组 我要超级霸气的,qq分组和,qq皮肤,求! java 使用Io流怎么修改文件的名称 求一组QQ个性分组! 更改java包名称 字数相同的qq分组七组好听霸气的还有要一个陌生人的 关于Java源文件命名 求八组有个性的QQ分组名。 为什么改了Java源文件的标题文字运行却不变 关于友情决裂的qq分组 HelloWorld.txt改.java文件名不是.java source file咋回事? 几个有个性的QQ分组 JCreator里面如何修改java源程序文件名 qq分组名称好听超拽 java 怎么给文件重命名 有没有人会搞霸气网名,霸气QQ分组,霸道个性签名? 两个类放在同一个java源代码中,源代码文件怎么命名? 求一个QQ里面的分组的名字。符号随便。霸气点,谢谢啦 QQ好友分组名称(个性) java源文件的命名有什么规定 java源文件的命名规则是什么 虾发绿怎么回事 冻虾刚剥好一会儿变红了变绿了是怎么回事? 鲜虾仁发绿怎么回事 虾仁呈绿色是什么原因 虾仁为什么发绿 虾为什么是绿色的 虾仁油炸后捞出变成青绿色了,正常吗? 虾仁的眼睛不是黑色的吗?怎变绿色的,这虾米能吃吗? 小鲜虾炒后为什么会变绿? 虾肉变白 葵花籽仁和虾皮炒隔夜变绿是什么原因? 虾变白色了还能吃吗 虾皮和瓜子仁隔夜变绿是什么原因? 夏天虾在车上放了一下午变红了是怎么回事还能吃吗 紫甘蓝汁加醋变红色以后加虾仁会变色吗