maven install COMPILATION ERROR 非法字符: '\ufeff'

maven install時,發生COMPILATION ERROR ,具體原因是:***.java:[1,1] 非法字符: '\ufeff'

一種由於BOM引起的編譯錯誤,查看此java類的屬性,發現此文件的編碼方式是Byte Order Mark is UTF-8(BOM):

其他正常的文件編碼方式是 UTF-8:

解決問題方式:把文件帶有BOM的UTF-8轉換爲純UTF-8。

 

解決步驟:

1,把有此問題的所有文件所在的目錄上傳到linux環境便於批量處理。business目錄

2,單個文件分析:以16進制顯示文件內容 xxd

3,要處理的就是package前面的三個... 對應的編碼是efbb bf:單個文件處理:

sed '1s/^\xef\xbb\xbf//' AmtGradedArbitrageEntity.java > AmtGradedArbitrageEntity.java1

處理後的結果:package之前的...已經處理完畢

4,把處理之後的文件修改名字替換原來的文件

 

單個文件處理完畢,若文件比較多,我們需要批量處理目錄裏面所有的文件方式如下:

1,vi batch.sh 輸入如下代碼段:

# ./thisfilename.sh source
# NOTE:
#
#  ensure this .sh file is changed mod
#  source is which dir you want to operate

function getfiles(){
 for file in `ls $1`
 do
     if [ -d $1"/"$file ]
     then
        #echo $1"/"$file
        getfiles $1"/"$file
     else
        # 這裏是對文件的操作,可以是移動,刪除,複製,
        # 也可以在對文件進行判斷,支隊指定類型的文件進行操作
      #`mv $1"/"$file direSource`
        echo $1"/"$file
        #mv $1"/"$file $1"/"$file"1"
        sed '1s/^\xef\xbb\xbf//' $1"/"$file >$1"/"$file"1"
        mv $1"/"$file"1" $1"/"$file
     fi
       done
}
getfiles $1

2,sh batch.sh business #business是要處理的文件夾目錄。執行完畢後,business下包含子目錄下所有的文件都會處理成不含bom的utf-8格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章