一、简介
项目发布上线后 , 代码将由java文件转为class文件 。当项目运行中出现问题或与实际代码不一致时 , 此时需要确认运行中的class文件是否正确等操作 , 接下来就需要对class文件进行操作 。这里基于一些常用命令进行介绍 。
二、使用
class文件操作的常用命令 , 位于jdk的bin目录下的javac、javap等 , 以及外部工具jad 。
2.1 javac
将java文件编译为class文件(多个文件用空格隔开) , 常用命令有:
格式:javac
常用参数:
-d: 输出目录
-target:输出jvm版本
-source: 输入jdk版本
示例:
#编译src目录下的Stu.java文件 , jdk版本为1.8 , 运行jvm版本为1.8 , 生的class文件位于out目录下
javac -d out -source 1.8 -target 1.8 src/Stu.java
2.2 javap
将class文件反编译为汇编语言 , 常用命令有:
格式:javap
常用参数:
-v: 输出行号、本地变量表、反编译汇编代码、当前类用的常量池等
【class文件乱码解决方法 java的class文件怎么打开】示例:
#反编译out/Stu.class文件,输出包含汇编代码、当前类常量等信息
javap -v out/Stu
2.3 jad
jad为外部的反编译工具 , 可以把class文件反编译为java文件(默认文件后缀为.jad , 可指定后缀为.java) , 多个文件支持通配符(如*class) 。如果源文件包含中文 , 将会转为unicode编码(此时可借助jdk工具native2ascii将unicode转为中文) 。
2.3.1 jad安装
下载地址为:
http://www.javadecompilers.com/jad
2.3.2 常用命令
格式:jad [option(s)]
常用参数:
-d : 指定输出文件目录
-s : 指定输出文件扩展名 , 默认.jad
-p : 反编译结果输出到标准输出
示例:
#将out目录下的Stu.class反编译为后缀是.java的位于out目录下的文件
bin/jad -d out -s java out/Stu.class
#将out目录下的Stu.class反编译后直接输出到标准输出
bin/jad -p out/Stu.class
三、备注
前边提到用于unicode和中文互转的jdk工具native2ascii , 这里简单介绍下:
格式:native2ascii -[option] [inputfile [outputfile]]
参数:
-reverse: 将unicode文件转为指定编码文件(不加该参数表示源文件转为unicode文件)
-encoding: 转为指定编码(如gbk)
示例:
#将Stu.java文件转为gbk文件
native2ascii -reverse -encoding gbk Stu.java Stu_gbk.java
#将Stu.java文件转为utf8文件
native2ascii -reverse -encoding utf8 Stu.java Stu_utf8.java
#Stu_utf8.java文件转为unicode文件
native2ascii -encoding utf8 Stu_utf8.java Stu_unicode.java
推荐阅读
- 附文件以扫描文件的形式保存设置 电子版怎么弄成扫描件
- 小编教你ipad文件夹在哪里? ipad文件夹在哪里?
- PDF文件转Word这么简单 如何将pdf文件转换成word文件
- mysqlworkbench使用教程 eclipse搜索文件名快捷键
- 管理员权限应用技巧 电脑如何提供管理员权限删除文件
- 最安全的文件存储方式 数据存储安全技术
- 数码知识:钉钉提交作业怎么上传文件 上传文档作业教程
- 强制粉碎文件程序安装 粉碎文件软件推荐
- 电脑丢失dll文件恢复方法 dll一键修复工具怎么用
- caj转换成PDF的方法 caj是什么格式的文件