2013-07-29 60 views
0

我做了一個基本的Java程序,它說:「Hello World」的「的Java *類名*」不工作的時候我輸入的東西

我用javac命令編譯它和java命令來運行它,一切正常,我犯了一個「複雜」(即需要進口隨機和掃描儀的工作)在NetBeans項目,出口,並在CMD的javac命令編譯源,但是當我嘗試運行它發生這種情況:

enter image description here

它只發生在我嘗試使用使用「import」co的代碼時mmand文件中

編輯:

我嘗試 「javac的asd.java」 和 「Java Asd.java」,無論是工作,然後我嘗試的 「java性Asd」 和 「Java ASD」,沒有工作,它使給我上述錯誤,代碼:

package asd; 
import java.util.Scanner; 
import java.util.Random; 
public class Asd{ 
    public static void main(String[] args) { 
    Random r = new Random(); 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Choose a difficulty"); 
    boolean s = true; 
    int v = 0; 
    while(true){ 
     System.out.println("Very Easy/Easy/medium/hard/impossible/impossibler"); 
     System.out.print("I want it to be "); 
     String x = scan.nextLine(); 
     if (x.equalsIgnoreCase("very easy")){ 
      v = 6; 
      break; 
     } 
     else if (x.equalsIgnoreCase("easy")){ 
      v = 11; 
      break; 
     } 
     else if (x.equalsIgnoreCase("medium")){ 
      v = 26; 
      break; 
     } 
     else if (x.equalsIgnoreCase("hard")){ 
      v = 51; 
      break; 
     } 
     else if (x.equalsIgnoreCase("impossible")){ 
      v = 101; 
      break; 
     } 
     else if (x.equalsIgnoreCase("impossibler")){ 
      s = false; 
      break; 
     } 
     else { 
      System.out.println("invalid difficulty"); 
     } 

    } 
    v--; 
    int h = 0; 
    int c = 0; 
    if(s){ 
    System.out.println("Guess a number beween 0 and " + v); 
    c = r.nextInt(v); 
    //int i = 0; 
    while (true) { 
    String b = scan.nextLine(); 
    int g; 
    try {   
     g = Integer.parseInt(b); 
     if (g < c){ 
      System.out.println("Try higger"); 
     } 
     else if (g > c){ 
      System.out.println("Maybe less"); 
     } 
     else { 
      break; 
     } 
    } 
    catch (Exception e) { 
    System.err.println("please use a number"); 
    }}} 
    else { 
    System.out.println("Guess a number between 0 and 999999999"); 
    while(true) { 
    c = r.nextInt(); 
    if ((c < 0) && (c > 999999999)) {} 
    else { 
    break; 
    }} 
    while(true) { 
    String b = scan.nextLine(); 
    try { 
     int g; 
     g = Integer.parseInt(b); 
     if (g < c){ 
      System.out.println("Try higger"); 
     } 
     else if (g > c){ 
      System.out.println("Maybe less"); 
     } 
     else { 
      break; 
     } 
      }catch(Exception e){ 
      System.out.println("please use a number"); 
     }} 
    } 
    System.out.println("YOU WIN"); 
    System.out.print("push enter to quit"); 
    String k = scan.nextLine(); 

} 
} 

這是一個小遊戲,我提出的,但它不只是這個代碼什麼,我做的是需要進口的東西外面運行時,它不工作netbeans/eclipse

+0

把你的代碼在這裏得到更好的答案。 – Paniz

+0

把你的代碼**和你的錯誤信息**放在這裏。 –

+0

嘗試使用'java asd'(使用小寫'a') – alfasin

回答

4

Java區分大小寫。

您使用編譯類...

javac asd.java 

將嘗試使用

java Asd 

這將無法正常工作運行它。

您應該使用

java asd 

根據您所提供的信息...

PS-你可能想看看Code Conventions for the Java Programming Language

+0

我試過「java asd」和「java asd」都沒有工作,由於某種原因它只在我使用不需要導入任何東西的代碼時才起作用,如果我這樣做「System.out.println(」hi「)」在它的工作代碼,如果我導入任何像掃描儀它只是沒有工作 –

+0

更改目錄一個級別和嘗試java asd.Asd – MadProgrammer

1

可能是類名和Java文件名是不同的

例如:

javac FileName.java 

創建ClassName.class
現在,

java ClassName 

運行良好。(記住區分大小寫)

希望這有助於你

1

當你編譯一個.java文件都會轉換成相應的.class文件(字節碼)。在你的情況下,當你執行javac asd.java時,asd.java將被轉換爲asd.class。現在當你調用java解釋器時,它將解釋這個字節碼(.class文件),因此你必須給Java解釋器賦予與.class文件相同的名字。 (無需.class擴展名的只是java filename

因此改變你的

java Asd 

java asd 
+0

我試過它沒有工作 –

0

所有其他的答案都被你迷惑ASD /性Asd資本化的東西,但實際分心問題是你試圖從中運行程序的地方。因爲您已將課程放在「asd」包中,所以您應該使用完整的包和類名稱來引用它。這意味着,與其運行

java Asd 
從.../src目錄/ ASD /目錄

,你應該運行它

java asd/Asd 

從.../src /目錄。這是 - 包裝 -/- 類。所以,如果你有一個更全面的封裝結構,像com.lucca.games.asd那麼你還是應該使用的「java」命令,在「SRC」目錄,但您的命令將

java com/lucca/games/asd/Asd 
相關問題