2013-10-18 75 views
1

我是Java中的初學者。我在Windows 7 OS上安裝了JDK1.7.0。我剛寫了一個示例java文件,其中文件未被編譯並引發下面的錯誤。在java編譯器中發生異常

Sam.java:5: ';' expected 
       Sample p = New Sample(); 
              An exception has occurred in the compile 
     r (1.7.0-ea). Please file a bug at the Java Developer Connection (http://java.su 
     n.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include 
     your program and the following diagnostic in your report. Thank you. 
     java.lang.StringIndexOutOfBoundsException: String index out of range: 26 


    at java.lang.String.charAt(String.java:694) 
     at com.sun.tools.javac.util.Log.printErrLine(Log.java:251) 
     at com.sun.tools.javac.util.Log.writeDiagnostic(Log.java:343) 
     at com.sun.tools.javac.util.Log.report(Log.java:315) 
     at com.sun.tools.javac.util.AbstractLog.error(AbstractLog.java:96) 
     at com.sun.tools.javac.parser.Parser.reportSyntaxError(Parser.java:295) 
     at com.sun.tools.javac.parser.Parser.accept(Parser.java:326) 
     at com.sun.tools.javac.parser.Parser.blockStatements(Parser.java:1599) 
     at com.sun.tools.javac.parser.Parser.block(Parser.java:1500) 
     at com.sun.tools.javac.parser.Parser.block(Parser.java:1514) 
     at com.sun.tools.javac.parser.Parser.methodDeclaratorRest(Parser.java:25 
69) 
     at com.sun.tools.javac.parser.Parser.classOrInterfaceBodyDeclaration(Par 
ser.java:2518) 
     at com.sun.tools.javac.parser.Parser.classOrInterfaceBody(Parser.java:24 
45) 
     at com.sun.tools.javac.parser.Parser.classDeclaration(Parser.java:2290) 
     at com.sun.tools.javac.parser.Parser.classOrInterfaceOrEnumDeclaration(P 
arser.java:2228) 
     at com.sun.tools.javac.parser.Parser.typeDeclaration(Parser.java:2217) 
     at com.sun.tools.javac.parser.Parser.compilationUnit(Parser.java:2163) 
     at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:530) 
     at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:571) 
     at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:82 
2) 
     at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:748) 
     at com.sun.tools.javac.main.Main.compile(Main.java:386) 
     at com.sun.tools.javac.main.Main.compile(Main.java:312) 
     at com.sun.tools.javac.main.Main.compile(Main.java:303) 
     at com.sun.tools.javac.Main.compile(Main.java:82) 

     at com.sun.tools.javac.Main.main(Main.java:67) 

下面是Sam.java代碼文件

class sam 
{ 
    public static void main(String args[]) 

    { 
    Sample p = New Sample(); 

    p.show(); 
    p.display(); 


    } 
} 

我在谷歌研究與各種編譯器選項,但沒有help.I想明白下面的錯誤。 1 - Sam.java:5:';'預期 2 - 發生在編譯器(1.7.0-EA)

+2

類應該是'Sam'不'sam'如果文件被命名爲'Sam.java'。班級名稱應以大寫字母開頭。此外,班級應該是「公開」的。另外,還有其他類叫Sample嗎? –

+1

發佈'show()'和'display()'方法。除了'New'關鍵字之外,錯誤似乎在其中,除此之外,'New'關鍵字應該是'new'。 – SudoRahul

+1

@HovercraftFullOfEels:班級沒有*要*被公開。 – Makoto

回答

4
Sample p = New Sample(); 

應該是:

Sample p = new Sample(); 

Java區分大小寫。


E.G.這將編譯乾淨這裏:

class Sam // class names should be EachWordUpperCase 
{ 
    public static void main(String args[]) 
    { 
    Sample p = new Sample(); 

    p.show(); 
    p.display(); 
    } 
} 

class Sample { 
    public void show() {} 
    public void display() {} 
} 
+1

我認爲這不僅僅是這個'new'關鍵字問題。你最好還是在這裏編輯你的答案(如果OP發佈了這兩個錯誤的方法拋出'StringIndexOutOfBoundsException'錯誤)! :) – SudoRahul

+0

@ R.J(shrugs)當我第一次評論時,不能說我注意到了'StringIndexOutOfBoundsException',但OP不應該試圖運行乾淨地編譯的代碼。我的建議是首先解決編譯器錯誤,然後在其他問題中詢問其他問題。 –

+0

我希望是一樣的,但不幸的是,OP沒有這樣的計劃。 :(再過幾分鐘,我就從這個問題繼續前進,比如FOREVER:D – SudoRahul

4

新的關鍵字小寫字符例外:

Sample p = new Sample(); 
3

使Sample p = New Sample();Sample p = new Sample();

new是其在java的用於創建對象的保留關鍵字但如Java是大小寫敏感的newNew

有不同也有不同的創建方法click瞭解更多

2

-

記住一點:

所有的Java關鍵詞是小寫字符。

-

+2

你完全正確,但是你的回答並沒有在現有的upvoted答案中增加太多...... – Makoto

+0

你需要擴大你的回答,但因爲你是新來的Stackoverflow,所以+1從我身邊 – SpringLearner