2015-09-01 100 views
0

java新手和通過CMD編譯。 我的課DataAnalyzer.java編譯正常,但包含主程序DataAnalyzerTester.java的類給我一個錯誤。編譯CMD程序時出錯Java程序出錯

DataAnalyzer:

package h1.q3; 
import java.util.*; 
public class DataAnalyzer 
{  
    public DataAnalyzer(LinkedList<Integer> numList) 
    { 
     for (int num : numList) 
     { 
      numbers.add(num); 
     } 
    } 
    public int min() 
    { 
     smallest = numbers.getFirst(); 
     for(int num : numbers) 
     { 
      if(num < smallest) smallest = num; 
     } 
     return smallest; 
    } 

    public int max() 
    { 
     largest = numbers.getFirst(); 
     for(int num : numbers) 
     { 
      if(num < largest) largest = num; 
     } 
     return largest; 
    } 

    public int average() 
    { 
     sum = 0; 
     listSize = 0; 
     for(int num : numbers) 
     { 
      sum += num; 
      listSize++; 
     } 
     return sum/listSize; 
    } 



    int largest, smallest, sum, listSize; 
    LinkedList<Integer> numbers = new LinkedList<Integer>(); 
} 

測試儀:

package h1.q3; import java.util.*; /** * * @author pini */ 
public class DataAnalyzerTester { 

    public static void main(String[] args) 
    { 
     LinkedList<Integer> numbers = new LinkedList(); 
     Scanner sc = new Scanner(System.in); 
     while(sc.hasNext()) 
     { 
      numbers.add(sc.nextInt()); 
     } 

     DataAnalyzer da = new DataAnalyzer(numbers); 

     System.out.println("Minimum: " + da.min()); 
     System.out.println("Maximum: " + da.max()); 
     System.out.println("Average: " + da.average());   
    } 

我得到的錯誤如下:

C:\Users\pini\Documents\NetBeansProjects\Homework1\src\homework1\q3>javac DataAn 
alyzer.java 

C:\Users\pini\Documents\NetBeansProjects\Homework1\src\homework1\q3>javac DataAn 
alyzerTester.java 
DataAnalyzerTester.java:24: error: cannot find symbol 
     DataAnalyzer da = new DataAnalyzer(numbers); 
     ^
    symbol: class DataAnalyzer 
    location: class DataAnalyzerTester 
DataAnalyzerTester.java:24: error: cannot find symbol 
     DataAnalyzer da = new DataAnalyzer(numbers); 
          ^
    symbol: class DataAnalyzer 
    location: class DataAnalyzerTester 
Note: DataAnalyzerTester.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
2 errors 

我已經試過一切,仍然無法得到它的編譯測試儀。我很確定我的代碼是好的,但它似乎並沒有識別DataAnalyzer對象。

C:\Users\pini\Documents\NetBeansProjects\Homework1\src\homework1\q3>java DataAna 
lyzerTester 
Exception in thread "main" java.lang.NoClassDefFoundError: DataAnalyzerTester (w 
rong name: homework1/q3/DataAnalyzerTester) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 
2) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
     at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 
+0

嘗試javac -classpath「」*。java –

回答

0

您需要包括在CLASSPATH DataAnalyzer:

感謝

編輯

既編譯並運行測試,我得到以下錯誤後。通常一次編譯所有源文件是最容易的。 (這就是Java,而不是C或C++ :))

如果他們都在同一個目錄下:

javac *.java 


C:\Users\pini\Documents\NetBeansProjects\Homework1\src\homework1\q3>java DataAnalyzerTester 
Exception in thread "main" java.lang.NoClassDefFoundError: DataAnalyzerTester (wrong name: homework1/q3/DataAnalyzerTester) 

要運行的程序,從那裏你:

cd ..\.. 
java homework1.q3.DataAnalyzerTester 

java命令需要完全合格的「main」類的類名稱。由於您宣佈您的課程包含homework1.q3,因此完全限定名稱爲homework1.q3.DataAnalyzerTester。當.class文件位於目錄樹(而不是jar文件)時,這些包對應於目錄。另外,包含軟件包的頂級目錄必須位於CLASSPATH中。 CLASSPATH對Java至關重要。編譯時由javac使用的CLASSPATH,以及在運行時由java使用的CLASSPATH;並注意每個可能不同(儘管通常這是導致錯誤的錯誤)。

+0

這工作和編譯DataAnalyzerTester.class文件,但我得到這樣的錯誤:請參閱編輯 – user1927242

+0

兩個可能的原因:(1)你跳過'cd .. \ ..'在這個答案,即,你調用'java (2)你將'h1'(參見問題中的'package'聲明)與'homework1'混合(參見調用'java'的控制檯日誌)。 –

1

Java的期望源文件是在一個名爲h1\q3相對於其中的youre編制

的文件移動到名爲

C:\Users\pini\Documents\NetBeansProjects\Homework1\src\homework1\h1\q3 

目錄和編譯代碼

javac h1\q3\*.java 

目錄從homework1目錄。