2014-09-21 83 views
-1

我使用「javac LabOne.java」編譯了我的java程序,並且它編造得很糟糕。按照預期,該文件夾中有一個LabOne.java和LabOne.class。但是當我嘗試通過使用「java LabOne」運行程序時,出現錯誤,提示「錯誤:無法找到或加載主類LabOne」。Java - 運行我的java程序錯誤

請有人可以幫助我。

代碼:

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package labone; 

import java.util.Scanner; 

/** 
* 
* 
*/ 
public class LabOne { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 

     Scanner userInput = new Scanner(System.in); 

     System.out.println("Welcome To The String Editor!"); 
     System.out.println(""); 
     System.out.println("Please choose what you would like to do by choosing one of the options below:"); 
     System.out.println("1. Input String"); 
     System.out.println("2. Print Current String"); 
     System.out.println(""); 
     int userOption = userInput.nextInt(); 
     String stringInput = new String(); 

     switch (userOption) { 
      case 1: stringInput = userInput.nextLine(); 
        System.out.println(stringInput); 
        break; 

      case 2: System.out.println(stringInput); 
        break; 

      default: ; 
        break; 
     } 


     // TODO code application logic here 
    } 

} 
+0

請分享您的代碼。 – mkobit 2014-09-21 23:37:59

+2

'labone'或'labOne'? – 2014-09-21 23:38:45

+0

您的錯誤消息顯示「labone」不是「labOne」。 – khelwood 2014-09-21 23:39:14

回答

1

的問題是,因爲你的類LabOne駐留在一個名爲labone包。你很可能在文件夾labone中,你運行javac LabOne.java併成功。但是,當您嘗試使用java LabOne運行它時,它將會失敗。

的解決方案是CD上一級和執行:

javac labone/LabOne.java 

java labone/LabOne 

,它會工作。

This答案涉及類似的問題。

您也可以嘗試添加包到類路徑,但它doen't看起來像你的類依賴於其他類的現在,這樣做可能是矯枉過正。

+0

所以目錄結構是labone/src/? – SJha 2014-09-22 00:18:48

+0

我通過在src文件夾中使用上面的兩個聲明來完成它的工作。謝謝! – 45aken 2014-09-22 00:18:49

0

錯誤說,該系統無法找到主要方法。 可能有多種原因

  1. 是labOne類'公共'嗎?
  2. 是類labOne中定義的主要方法,定義爲公共和靜態?
  3. 類名是否與文件名相同並區分大小寫,因此應該完全相同?

如果以上兩種情況都不是這樣的話,那麼也請分享一下代碼以便能夠回答這個問題。

+0

1)公共類LabOne {和2)公共靜態無效的主要(字符串[] args){ – 45aken 2014-09-21 23:43:08

+0

^^多數民衆贊成我是如何在我的代碼中。 :/ – 45aken 2014-09-21 23:43:25

+0

@ 45aken現在「LabOne」?這是另一個大寫字母。請選擇一個並始終如一地使用它。 – khelwood 2014-09-21 23:44:31

0

我與整理文件/類的命名問題,可訪問運營商開始,然後最終看一看CLASSPATH。在調用java編譯器的時候,你可以在系統環境設置中使用該路徑並使用-cp選項。我強烈建議您分享更多細節。