class文件亂碼解決方法:java的class文件怎麼打開

一、簡介

項目發布上線後,代碼將由java文件轉為class文件。當項目運行中出現問題或與實際代碼不一致時,此時需要確認運行中的class文件是否正確等操作,接下來就需要對class文件進行操作。這裡基於一些常用命令進行介紹。

二、使用

class文件操作的常用命令,位於jdk的bin目錄下的javac、javap等,以及外部工具jad。

2.1 javac

將java文件編譯為class文件(多個文件用空格隔開),常用命令有:

格式:javac <options> <source files>

常用參數:

-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 <options> <classes>

常用參數:

-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)] <filename(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://www.506064.com/zh-hant/n/225102.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 14:42
下一篇 2024-12-09 14:42

相關推薦

發表回復

登錄後才能評論