2011-11-29 97 views
1

我有一個Store類,它是Person的數組;我有一個人,日期,學生,本科和研究生課程。一切都在Eclipse中運行,我必須從命令行運行它。我複製了src文件並試圖運行主程序,但它只是說它找不到我的任何類。他們都在同一個文件夾中,並且我已經分配了每個課程包。我查了一下導入班,我試過了:編譯多個對象類時出現ClassNotFound錯誤

import oopinterface.Person; 

等等所有的類。

有沒有什麼辦法可以編譯主程序,所以它會識別那些非常清晰的類文件!?我在Windows上,但是如果我可以使用Linux的'其他'方式會有幫助嗎?

這是編譯器錯誤:

C:\Users\Liloka\Source\oopinterface>javac ContainerInterface.java 
    ContainerInterface.java:41: cannot find symbol 
    symbol : class Store 
    location: class oopinterface.ContainerInterface 
      Store myList = new Store(); 

    //Instance of Store 
        ^
    ContainerInterface.java:688: cannot find symbol 
    symbol : class Person 
    location: class oopinterface.ContainerInterface 
      public Person getSupervisor() 
       ^

..它繼續在其他類的每一個方法來接。(39) 預先感謝您!

回答

2

它看起來像你的課程在包oopinterface。從包裝的基本目錄編譯源文件,就像這樣:

C:\Users\Liloka\Source> javac oopinterface\ContainerInterface.java 

如果你有CLASSPATH環境變量設置,然後確保沒有設置,或添加軟件包的基本目錄,其中編譯後的類文件可以在類路徑中找到。您也可以使用-cp-classpath選項告知javac在哪裏可以找到已編譯的類文件。

是否所有的源文件在文件頂部都有package oopinterface;

編譯之後,在命令行運行的程序做這樣的事情:

java -cp C:\Users\Liloka\Source oopinterface.MainClass 

其中MainClass是包含public static void main(String[] args)方法的類。 (這假定你編譯的類文件和源文件在同一個目錄中)。

+0

是的,他們這樣做,我一次編譯它們,但我在oopinterface並只運行javac * .java它在我運行我的Container類之前沒有給我任何錯誤。它編譯成功與您的建議,但它仍然給我同樣的錯誤,當我嘗試和運行ContainerInterface:/ – liloka

+1

我試過運行它,它的工作!我的ContainerInterface是我的主類。所以非常感謝你!你剛剛保存了我的uni項目! – liloka

1

你應該一次編譯所有的類,因爲它們都引用它們自己。 cd到源目錄,並運行

javac oopinterface\*.java 
+0

這不會給我任何編譯錯誤,但我該如何運行它?我嘗試過: java oopinterface \ ContainerInterface 但它不工作:/ – liloka

+0

您需要將完整的類名稱給java:java -cp。 oopinterface。ContainerInterface(假設你仍然在源目錄中) –

+0

完成,它的工作原理!所以謝謝 :) – liloka

1

您需要設置類路徑指向其中的類,因此編譯器和解釋器命令可以找到它的目錄。 它看起來像:javac -classpath C:\ Users \ Liloka \ Source \ oopinterface ContainerInterface.java