Intellij Idea編譯項目下的.java文件時的編碼問題


由《編譯.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中所示的編譯器參數配置等等。具體的機制需要查閱相關文檔。

                                                                                                      圖1

 

 

                                                                                                                                           圖2

 

 

 

                                                                                                                                        圖3

 

 

 

3)由2)可得,Intellij Idea自身有一套確定"-encoding"參數值的機制,但是往往最后被確定的值不是我們想要的。而且"encoding"參數是非常重要的一個參數,為了更加准確地指定"-encoding"參數,我們可以在圖3所示的編譯器參數配置中明確配置"-encoding xxx"。

 

參考文獻:

[1]http://stackoverflow.com/questions/2966530/can-i-see-the-exact-commands-intellij-uses-to-build-a-java-project
---------------------
作者:AllInCode
來源:CSDN
原文:https://blog.csdn.net/dslztx/article/details/47010113/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM