当前位置:首页 > Java技术 > Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ)

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ)

2022年10月27日 21:07:43Java技术177

一、什么是编译与反编译

简单来讲,编译就是把.java文件生成为.class文件,反编译就是把.class生成为.java文件。如果看到这里你已经懂了就可以看第二大部分了,不然就再听我絮叨一下。

我们编程的时候主要是写一个个.java文件,以及围绕它的相关配置。但是.java文件不可以直接被执行,它的需要被编译成.class文件,才能够运行在不同的JVM上。.class文件即为JVM可运行的二进制文件。

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ) _ JavaClub全栈架构师技术笔记

二、反编译工具

反编译的工具主要用来打开.class文件,展示.java文件的内容,而不是像上文文字字面描述的那样,真正地生成一个.java文件。生成的.java文件与原.java文件可能内容有点出入,但是不妨碍主要内容的理解。

一般是三个工具应用比较广泛:Java Decompiler、IntelliJ IDEA、IntelliJ Eclipse。

Java Decompiler百度经验上就有使用方法,这里不赘述。传送门

IntelliJ IDEA,主要说一下这个,其实主要是说为什么不用它。如果你像我一样使用IDEA,其实就可以直接打开.class文件,如下图。

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ) _ JavaClub全栈架构师技术笔记

但是,如果你下载了IntelliJ IDEA插件,并使用它,那么你就会发现,用了还不如不用…之前可以看到的代码都看不了了。所以这里也不交给大家怎么下这个插件了,留给自己点快乐,好么?

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ) _ JavaClub全栈架构师技术笔记

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ) _ JavaClub全栈架构师技术笔记

三、汉字在编译时的注意事项

  • 编译含有中文的java文件使用utf-8的方式进行编码
  • windows上编写代码时不要用记事本的方式打开

编译这一步虽然简单,看起来就是在IDE上点击个按钮的事情,但是还是有坑的。当然上述的注意事项前提,是你的代码编写正确。

1、为什么 & 如何指定编译时的编码方式?

为什么?windows使用的编码方式是GB 2312,而JVM的编码方式为Unicode。如果不太清除编码方式是什么,可以把它当作一种由java语言翻译成机器语言的规则,规则不同,交流的时候就出现的问题,尤其是在文件中出现中文的时候。有人问,UTF-8和Unicode听起来还是不同的,但是UTF-8是Unicode的一种实现方式,UTF-8可以在编译过程中编译汉字,并且编译结果被JVM所识别,但是Unicode不可以。

如果你使用命令行,使用命令

javac -encoding 编码方式 类名.java

示例,注意,需要在命令行中进入类文件所在的路径下,才可以执行这个命令。

Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ) _ JavaClub全栈架构师技术笔记

如果使用IDEA,它编译是默认的编码方式就是utf-8,如何查看IDEA编码格式,传送门

2、为什么不用记事本打开?

Windows的纯文本编译器会在文档头加上BOM,javac看到BOM会无法编译。并且,使用现成的IDE不快乐么?实在不行,notepad++考虑一下啊。

 

 

 

 

作者:zhanggonglalala
来源链接:https://blog.csdn.net/zhanggonglalala/article/details/103032618

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/64486.html

分享给朋友:

“Java编译与反编译中的汉字乱码(IDEA反编译不要使用IntelliJ)” 的相关文章

推荐--java反编译工具-超级强!

『XJad 2.0』简要介绍================================ 功能特点:========1、XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2;2、可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处...

java反编译工具jd-gui的下载和使用

java反编译工具jd-gui的下载和使用

jd-gui可以反编译class文件,有图形化界面。 下载地址:http://java-decompiler.github.io/ 在download页面下载jd-gui-1.x.x.jar文件 下载后运行命令打开: java -jar jd-gui-...

JAVA代码编译流程

JAVA代码编译流程

此文转载于 公众号:三太子敖丙 前言 写了这么多年的代码,对于java代码运行的全流程你心里有清晰的脉络吗? 大家会不会跟我最开始一样,觉得在IDE里点一下RUN按钮,我们写的代码就直接直接跑起来了吧? 俗话说的好,你觉得生活静好,其实...

Java bytecode反编译工具

Java bytecode反编译工具

  JD-GUI /JD-Eclipse 是一个Java bytecode反编译工具,支持java5以上的字节码。使用C++编写,有独立GUI工具和Eclipse插件可以使用。http://java.decompiler.free.fr/ 宣传一下自己的网站:...

在Java项目中如何反编译class文件及批量反编译?

前言:            反编译是一个对目标文件可执行程序进行逆向分析,从而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。今天介绍几款反编译的工具,以及如何更快的...

Java 反编译工具几枚(class转java)

  1.Java Decompiler Yet another fast Java decompiler. 下载地址:http://jd.benow.ca/#jd-gui-download 一款非常简洁的反编译工具,支...

一个好用的在线java反编译工具

今天看c3p0的源码,为了查看一个代理生成类的信息, 查到了这个反编译工具,非常好用,还可以下载反编译的源码 http://www.javadecompilers.com/   作者:Tea 来源链接:http...

一个好用的java反编译工具Java Decompiler

http://java.decompiler.free.fr/ 有独立运行的GUI版本,也有Eclipse的插件,可以一次反编译整个jar包,非常实用的反编译工具。  作者:BladeWorks 来源链接:https:...

java反编译通过.class获取.java文件

java反编译通过.class获取.java文件

借助一个小工具把.class文件反编译为.java 先看效果图 下面通过jd-gui.exe实现反编译 1,打开软件 2,将.class文件copy到软件中去 可以看到已经成功的反编译,看到了我们最开...

如何将.class文件反编译为.java文件

直接用jd-gui jad太麻烦了---------2014-12-19 23:24:04------反编译工具jad简单用法 以下假设jad.exe在c:\java目录下 一、基本用法 Usage:jad [option(s)] 直接输入类文件名,且支持通配符,如下所示。 c:\ja...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。