java中class文件操作

java中class文件操作一 简介项目发布上线后 代码将由 java 文件转为 class 文件 当项目运行中出现问题或与实际代码不一致时 此时需要确认运行中的 class 文件是否

大家好,欢迎来到IT知识分享网。

一、简介

项目发布上线后,代码将由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: 输出行号、本地变量表、反编译汇编代码、当前类用的常量池等

示例:

#反编译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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/46043.html

(0)
上一篇 2026-04-08 10:45
下一篇 2026-04-08 15:47

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信