2014-02-23 49 views
0

早上好,我 有一個文件Test.java是在/homeJava測試包不存在

class Test { 
    public static void main(String[] args) { 
     prog.io.ConsoleOutputManager out=new prog.io.ConsoleOutputManager(); 
     pack1.A a=new pack1.A(); 
     out.println(a.toString()); 
    } 
} 

,讓我的錯誤:

Test.java:3: error: package prog.io does not exist 
prog.io.ConsoleOutputManager out=new prog.io.ConsoleOutputManager(); 
^ 
Test.java:3: error: package prog.io does not exist 
prog.io.ConsoleOutputManager out=new prog.io.ConsoleOutputManager(); 
^ 
Test.java:5: error: package pack1 does not exist 
pack1.A a=new pack1.A(); 
^ 
Test.java:5: error: package pack1 does not exist 
pack1.A a=new pack1.A(); 
^ 
4 errors 

pack1pack2prog.io是在/home以及..爲什麼它沒有找到它們?

回答

0

請確保您已設置類路徑,以便它可以找到您在代碼中使用的軟件包。

1

將類文件放在同一目錄中是不夠的。它們也必須具有相同的包裝聲明。

此外/home必須是您的Classpath的一部分。如果/home是您Classpath文件必須在/home子目錄:

/home/prog/io 
    ConsoleOutputManager.class 
/home/pack1 
    A.class 
/home 
    Test.class 

ConsoleOutputManager.java應該有之前的任何importclass之類的語句package prog.io;聲明。 A.java應該有package pack1;

有了這一點,你可以運行你的類通知使用的類路徑:

java -cp /home Test 

而且它會發現它的依賴。

您也可以將您的依賴與相同結構的JAR文件,然後在您的類路徑中的JAR文件,以及:

java -cp yourJar.jar:/home Test 
0

檢查,如果你有你的ConsoleOutputManager類包的聲明,以及。它應該是:

package prog.io; 

作爲您文件中的第一行。

0

您的源文件沒有正確組織到軟件包中,或者軟件包丟失。你的類文件定義

prog.io.ConsoleOutputManager out=new prog.io.ConsoleOutputManager(); 
pack1.A a=new pack1.A(); 

這樣,JVM將查找在prog.ioConsoleOutputManager類和Apack1包,無法找到並拋出package doesn't exist錯誤。解決方案是在構建路徑中添加缺少的軟件包源,並保持源文件的有序組織