如何查看java class文件反编译

package MyJ
public class MyThread {
public static void SysPrint(String str) {
System.out.println(str);
public static void main(String[] args) {
SysPrint("Hello World");
java文件在:C:\Users\Ivan\Desktop\txt\MyThread.javajavac后,class文件保存在:C:\Users\Ivan\Desktop\txt\MyJava\MyThread.class
关于cmd下的java命令正确的做法1.把目录cd到:C:\Users\Ivan\Desktop\txt然后:java MyJava.MyThread即:C:\Users\Ivan\Desktop\txt&java MyJava.MyThread
2.在任何目录下,使用-cp或-classpath命令参数(不包括C:\Users\Ivan\Desktop\txt\MyJava)如:C:&java -cp C:\Users\Ivan\Desktop\txt MyJava.MyThread如:D:&java -cp C:\Users\Ivan\Desktop\txt MyJava.MyThread
关于-cp (作用、效果同-classpath)
-cp &路径&
指定查找用户类文件和注释处理程序的位置
错误的做法,有1.把目录cd到:C:\Users\Ivan\Desktop\txt\MyJava然后:java MyJava.MyThread或:java MyThread即:C:\Users\Ivan\Desktop\txt\MyJava&java MyJava.MyThread或:C:\Users\Ivan\Desktop\txt\MyJava&java MyThread
2.错误使用-cp,将路径直接指到了包里面即:D:&java -cp C:\Users\Ivan\Desktop\txt\MyJava MyJava.MyThread或:D:&java -cp C:\Users\Ivan\Desktop\txt\MyJava MyThread
总结,将当前路径设置为包的父目录,或使用-cp/-classpath参数,使得当前路径相当于在包的父目录,就能够正确执行java命令了。
补上一遍更有营养的文章,
浏览 48390
浏览: 143928 次
来自: 广州
附件呢?看不到啊?
你好,我按照你的写法配置了一遍,发现会报异常:a differ ...
看上去很值得学习!
赞一个 不错用上了
哇!!!!!这个真没想过。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'这些class文件怎么打开查看代码,网上的学习资料,不给代码,给这个有啥用【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:656,634贴子:
这些class文件怎么打开查看收藏
这些class文件怎么打开查看代码,网上的学习资料,不给代码,给这个有啥用
2017java学习来上市公司博为峰学java,入学即签就业协议,不就业不收费,查看java课程!java好学吗?java课程来博为峰学,java工程师就业年薪十几万!
(⊙o⊙)…不知道,2088年你穿越了么
登录百度帐号推荐应用如何将.java文件编译成.class文件?
本回答由提问者推荐
(11条回答)
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;博客分类:
查看的方法:
1.先装一个DJ Java Decompiler 这个工具网上到处都是,主要就是反编译java class文件。
2.在DJ Java Decompiler的菜单中View-&class version info,就会弹出对话框如:
Major Version: 49
Minor Version: 0
参照下面的引用,可知class由jdk1.5编译而来。
引用/javadetails/java-0544.html
The first 4 bytes are a magic number, 0xCAFEBABe, to identify a valid class file then the next 2 bytes identify the class format version (major and minor).
Possible major/minor value :
major& minor Java platform version
45&&&&&& 3&&&&&&&&&& 1.0
45&&&&&& 3&&&&&&&&&& 1.1
46&&&&&& 0&&&&&&&&&& 1.2
47&&&&&& 0&&&&&&&&&& 1.3
48&&&&&& 0&&&&&&&&&& 1.4
49&&&&&& 0&&&&&&&&&& 1.5
50&&&&&& 0&&&&&&&&&& 1.6
import java.io.*;
public class ClassVersionChecker {
&&& public static void main(String[] args) throws IOException {
&&&&&&& for (int i = 0; i & args. i++)
&&&&&&&&&&& checkClassVersion(args[i]);
&&& }
&&& private static void checkClassVersion(String filename)
&&&&&&& throws IOException
&&& {
&&&&&&& DataInputStream in = new DataInputStream
&&&&&&&& (new FileInputStream(filename));
&&&&&&& int magic = in.readInt();
&&&&&&& if(magic != 0xcafebabe) {
&&&&&&&&& System.out.println(filename + " is not a valid class!");;
&&&&&&& }
&&&&&&& int minor = in.readUnsignedShort();
&&&&&&& int major = in.readUnsignedShort();
&&&&&&& System.out.println(filename + ": " + major + " . " + minor);
&&&&&&& in.close();
&&& }
}
& java ClassVersionChecker ClassVersionChecker.class
ClassVersionChecker.class: 49 . 0
from The Java Virtual Machine Specification
magic
The magic item supplies the magic number identifying t it has the value 0xCAFEBABE.
minor_version, major_version
The values of the minor_version and major_version items are the minor and major version numbers of this class file.Together, a major and a minor version number determine the version of the class file format. If a class file has major version number M and minor version number m, we denote the version of its class file format as M.m. Thus, class file format versions may be ordered lexicographically, for example, 1.5 & 2.0 & 2.1.
A Java virtual machine implementation can support a class file format of version v if and only if v lies in some contiguous range Mi.0 v Mj.m. Only Sun can specify what range of versions a Java virtual machine implementation conforming to a certain release level of the Java platform may support.
论坛回复 /
(0 / 6921)
wangsong76
浏览: 140434 次
来自: 成都
请问这个问题要怎么解决呢?
您好,求教:
将一个字符指针所指向的值拷贝给字符数组。
学习了。。。
hahahahahahahaahahahha
zzknight 写道请问
var opts = $.ext ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 325, 距离下一级还需 175 积分
论坛徽章:0
如果拿到一个class文件如何能看一下class文件定义的内容?谢谢
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
论坛徽章:0
你希望查看那些内容?比如类名?各个方法?用javap命令就行
白手起家, 积分 4, 距离下一级还需 196 积分
论坛徽章:0
.class文件已经是字节码了,要查看对应源码的话可以使用反编译器 或者 用jbuilder
家境小康, 积分 1235, 距离下一级还需 765 积分
论坛徽章:0
找个反编译工具就可以了。
如果只是想看里边的方法,不关心实现的话,就用jbuilder之类的看
稍有积蓄, 积分 325, 距离下一级还需 175 积分
论坛徽章:0
我只是想看看方法,原来java可以反编译,不安全啊
丰衣足食, 积分 910, 距离下一级还需 90 积分
论坛徽章:0
只是看方法的话, 如sakulagi所说, 用javap完全可以解决

我要回帖

更多关于 java class文件 的文章

 

随机推荐