2014-10-04 48 views
-9

所以最近在我的電腦上(osx 10.9),我一直無法編譯任何Java程序。我不斷收到相同的錯誤消息。無論我試圖編譯:我的java編譯器壞了。我需要幫助修復它/重新安裝它

[[email protected] sandbox]$ javac IOLearning.java 
./String.java:9: ';' expected 
word = String ReplaceAll(word,"World"); 
      ^
./String.java:3: incompatible types 
found : java.lang.String 
required: String 
String word = "Hello"; 
      ^
./String.java:9: cannot find symbol 
symbol : variable String 
location: class String 
word = String ReplaceAll(word,"World"); 
    ^
./String.java:9: cannot find symbol 
symbol : method ReplaceAll(String,java.lang.String) 
location: class String 
word = String ReplaceAll(word,"World"); 
      ^
4 errors 

我試過從互聯網上更新java。我曾嘗試從蘋果下載最新的命令行工具。基本上我不知道該怎麼做。也許我只需要從java中刪除一切並重新安裝。有人能夠引導我通過這個?因爲現在我的備份計劃是在一夜之間格式化硬盤並重新開始!

+0

IOLearning.java的內容是什麼? – 2014-10-04 17:58:16

+3

'word = String ReplaceAll(word,「World」);'是無效的Java。解決這個問題,看看你的其他錯誤消失。此外,它似乎有一個名爲'String.java'的文件。這是一個非常非常糟糕的IDEA,因爲它與內置的String類衝突。 – 2014-10-04 17:58:27

+1

刪除'String.java'?您不能通過簡寫名稱'String'來定義和引用您自己的類,而不會與'java.lang.String'衝突。 (你必須把它放到一個包中,然後用完全合格的類名引用它。) – 2014-10-04 17:59:01

回答

6

這些錯誤顯示您的代碼有問題,而不是編譯器。

首先,你永遠不應該命名一個類String。這是你的大部分錯誤的原因,因爲Java看到你的類名爲String,並且不能使用具有相同名稱的標準庫類。其次,word = String ReplaceAll(word,"World");顯然是錯誤的。解決這個問題,你會看到你的編譯器錯誤消失。

一般來說,當編譯器給出錯誤時,這意味着你的代碼被破壞了。隨着你繼續學習編程,你應該先學會先問自己的工作,然後弄清楚爲什麼它不能按你期望的方式工作。譴責別人或其他事情很少是正確的第一反應當你只是開始學習語言時,你會發現編譯器有問題的情況非常罕見。

+0

謝謝。我認爲這是編譯器,因爲我在「Hello world」程序上嘗試過它。它最終成爲String.java問題。我也不知道我在哪裏編寫代碼,我從來沒有聽說過「ReplaceAll」哈哈。但非常感謝你捕捉String.java問題。 – 2014-10-04 18:49:04

+1

@ user2946713當你遇到編譯器錯誤時,你應該總是問的第一個問題是「我**做錯了什麼?」 – 2014-10-04 18:50:33

+0

至少它應該是你問到的Hello World程序,而不是更復雜的例子 – 2014-10-04 20:35:27