idea生成class文件乱码

谁都会走 提交于 2020-05-02 10:44:51

由《编译.java文件时的编码问题》可知,在编译.java文件的时候,需要正确指定一个编码方案,该编码方案用于解码.java文件的字节流。
那么在使用Intellij Idea编译(假定使用javac编译工具)项目下所有的.java文件时,该如何指定正确的编码方案呢?

1)首先,我们需要知道当执行"Build"菜单下的"Make Project"命令,编译整个项目下的.java文件的时候,Intellij Idea执行的具体命令。我们可以通过以下方式获得,执行"Build"菜单下的"Generate Ant Build"命令,生成一个Ant Build File,然后通过这个Ant Build File,我们就可以得到Intellij Idea在编译整个项目的时候执行的具体命令。[1]


2)借助于1)中的Ant Build File,可以发现Intellij Idea在编译项目下的.java文件时,执行的具体命令是“带有各种参数的javac命令”。其中有一个"-encoding"参数,该参数就是用来指定编译.java文件时应该使用的编码方案的,如图1所示。Intellij Idea自身有一套机制,用来确定该参数的值,经过测试,该值有可能来自"Project Encoding"的配置,见图2;有可能来自某个.java文件被Intellij Idea检测到的使用的编码方案,见链接;也有可能来自图3中所示的编译器参数配置等等。具体的机制需要查阅相关文档。







 

 

3)由2)可得,Intellij Idea自身有一套确定"-encoding"参数值的机制,但是往往最后被确定的值不是我们想要的。而且"encoding"参数是非常重要的一个参数,为了更加准确地指定"-encoding"参数,我们可以在图3所示的编译器参数配置中明确配置"-encoding xxx"。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!