2016-07-24 103 views
0

我正在從書中學習Java,並在關於訪問控制的章節中學習。練習要求我在包中創建一個類,然後在包之外創建該類的一個實例。我在創建java包並導入它(初學者)時做了什麼錯誤?

我的文件全部都位於一個文件夾中創建: 用戶/ MYNAME /桌面/ JAVA/AccessControl的,我在Mac上,如果該事項

我創建了一個文件Person.java與驗證碼:

package net.baumli.a; 

public class Person { 
    void welcome() { 
     System.out.println("A new person has entered the room, welcome."); 
    } 
} 

我沒有域名,所以我只是用net.mylastname和隨機創建的軟件包名稱。

然後,我創建的文件AcTest.java

import net.baumli.a.Person; 

public class AcTest { 
    public static void main(String[] args) { 
     Person mike = new Person(); 
     mike.welcome(); 
    } 
} 

,然後我編譯的javac AcTest.java 和接收這些錯誤:

cTest.java:1: error: package net.baumli.a does not exist 
import net.baumli.a.Person; 
      ^

AcTest.java:5: error: cannot access Person 
       Person mike = new Person(); 
      ^

bad source file: ./Person.java 

file does not contain class Person 

Please remove or make sure it appears in the correct subdirectory of the sourcepath. 

2個錯誤

我需要更改我的CLASSPATH變量?我知道它說我的班級不在正確的子目錄中,但我如何獲得它?當我創建一個包名稱時,可以將其作爲一個隨機名稱,還是必須將它匹配到目錄路徑?我對整個情況感到非常困惑。任何幫助你可以給予非常感謝!

+0

這是一個愚蠢的問題,但文件夾「net」,「baumli」和「a」存在嗎? (它符合你的包的名字) – jorgevasquezang

+0

把Person.java和AcTest.java放入Users/myname/Desktop/java/accessControl/net/baumli/a/- 假設你正在用命令行編譯,將你的默認目錄設置爲用戶/ MYNAME /桌面/ JAVA/AccessControl的/。然後執行「javac net/baumli/a/AcTest.java」。除非需要找到其他需要找到的類,否則不需要類路徑變量。 – arcy

回答

0

只需將您的軟件包目錄移動到程序目錄上方即可。

讓你的程序目錄C:\的Java \ AcTest.java

然後你就可以像 C上創建您的包目錄:\的Java \ NET \ baumli \ A \人