2012-10-29 69 views
0

我寫了一個簡單的java程序,下面提到。不幸的是發生編譯錯誤。編譯我的簡單Java文件時出錯

class String { 
    public static void main(String[] args) { 
     System.out.println("stre"); 
    } 
} 

下在命令提示符下編譯期間出來:

C:\的Java> Java字符串 錯誤:主要方法String類沒有找到,請確定的主要方法爲: 公共靜態無效main(String [] args)

它不適用於我的任何程序,甚至沒有這個簡單的程序!爲什麼是這樣?

編輯:

現在我有:

import java.lang.*; 
import java.lang.String.*; 

class incogn { 
    public static void main(String[] args) { 
     System.out.println("stre"); 
    } 
} 

而且它不工作。爲什麼沒有工作?

它說與以前完全一樣。

你說的與Java.lang.String []的作品,但爲什麼不會這樣?爲什麼我不需要把這些放在之前呢?

+4

你爲什麼要調用String類? – alex

+1

只需更改班級名稱即可。 –

+1

什麼不起作用?什麼是錯誤?你還記得重命名你的.java文件嗎? – I82Much

回答

3

這可能是因爲您正在爲您的課程使用名稱String,與java.lang.String相沖突;換句話說,你已經寫過你的主要方法以你的類的實例作爲輸入,而不是主要方法需要的那個,即java.lang.String。嘗試要麼

  1. 重命名你的類
  2. 改變你的簽名,以public static void main(java.lang.String[] args) {
+2

做數字1!請不要做2. – Collin

+0

第二點是沒用的。問題是有一個'String'類。 JVM抱怨是因爲已經加載了一個String類(是的,java.lang.String類)。 –

+0

我不同意。實際上,編譯器不會抱怨。這是虛擬機抱怨,因爲沒有主(java.lang.String [])。我認爲#2是真正的觀點。 – ignis

0

好吧,給你的類名String然後調用main(String[] args)是模糊的,如果這意味着java.lang.String或新定義的類,但有了java範圍規則,它將使用你的,除非另有聲明。


更新編輯後

有沒有java.lang.String,但它是一個。因此,你不能說

import java.lang.String.*; 

通過添加「.*」,編譯器理解,這是指一些包裝String

一個例外,是靜態導入,但這不是你在這裏需要的。

+0

究竟MouseEvent –

0

您不應該調用您的類String,它會與java類String衝突。

或者,您可以更改您的代碼:

class String { 
    public static void main(java.lang.String[] args) { 
     System.out.println("stre"); 
    } 
} 
+0

是的,這是很好的解決方案 –

0
  1. ,因爲它是在java.lang.String中的Java庫類
  2. 賺不創建一個名爲「字符串」的Java文件類公共

所以,下面寫你的源代碼:

public class StringDemo { 
    public static void main(String[] args) { 
     System.out.println("stre"); 
    } 
} 

立即編譯。我相信它會運作良好。

0

1)類應該是public

2)避免給你打電話String類,因爲它與java.lang.String(你仍然可以重複的名稱,但不是好)。否則,你的主要方法是有錯誤的參數類型。

3)您不必從java.lang包明確導入。


public class String { 
    public static void main(java.lang.String[] args) { 
     System.out.println("stre"); 
    } 
} 

OR

public class YourClass { 
    public static void main(String[] args) { 
     System.out.println("stre"); 
    } 
} 

嘗試使用第二種形式。

+0

是的,以上是不錯的代碼 –