2011-11-15 41 views
1

我有我的java文件編譯錯誤:非法字符錯誤編譯Java源文件

TestResponse.class:3: error: illegal character: \0 

是它是編碼有關?

+0

我們在這裏需要一些代碼! – talnicolas

+5

你確定你沒有試圖編譯'.class'文件嗎? – Mat

+0

就像我已經提到的那樣,似乎是一個斷行編碼錯誤,很難說沒有看到更多。並確保您編譯.java文件,然後運行.class,而不是相反。 – bcmoney

回答

3

它看起來像一個:

  • 你嘗試編譯.class文件

  • 編譯器讀取從類路徑中 腐敗的類文件。

0

即使我面臨同樣的問題。 問題在於文件格式。 只需將文件保存爲ANSI格式而不是Unicode或UTF格式。 它在我的情況下工作! 您可以簡單地在記事本中打開您的代碼並以ANSI編碼字符格式另存爲!

-1

問題是你可能沒有ANSI編碼。

如果您對Unicode的你會recive錯誤

0

我不知道這是否是同樣的問題的編碼,但它可能是。我從Mac OS X中壓縮了一些Java源代碼,並且將它複製到了Linux,在那裏我發現了這些錯誤:

db/src /._ SomeClass.java:1:錯誤:用於編碼UTF8的不可映射字符 ... DB/src目錄/._ SomeClass.java:1:錯誤:非法字符:\ 0 ...

這個文件並沒有在OS X存在,但我認爲它在創建時我未解壓因爲原始.java文件具有擴展屬性。

回到OS X,當我檢查SomeClass.java的權限時,我可以看到: -rw-r - r - @ 權限末尾的@表示擴展屬性。

要查看的屬性: XATTR -l SomeClass.java

要刪除它們: XATTR -c Someclass.java

在Linux上,我可能只是刪除._SomeClass.java文件,但刪除Mac OS X上的擴展屬性可以防止它再次發生。