Ich lerne Java aus einem Buch und bin im Kapitel über die Zugriffskontrolle. Die Übung fordert mich auf, eine Klasse in einem Paket zu erstellen und dann eine Instanz dieser Klasse außerhalb des Pakets zu erstellen.Was mache ich falsch beim Erstellen eines Java-Pakets und Importieren (Anfänger)?
Alle meine Dateien wurden in einem Ordner erstellt, befindet: Benutzer/myname/Desktop/java/Accesscontrol und ich bin auf einem Mac wenn es ankommt
ich eine Datei erstellt Person.java mit dieser Code:
package net.baumli.a;
public class Person {
void welcome() {
System.out.println("A new person has entered the room, welcome.");
}
}
ich habe nicht einen Domain-Namen, damit ich net.mylastname nur verwendet, und erstellt, dass die Paketnamen in zufälliger Reihenfolge.
Dann habe ich die Datei AcTest.java
import net.baumli.a.Person;
public class AcTest {
public static void main(String[] args) {
Person mike = new Person();
mike.welcome();
}
}
und dann kompilieren ich Javac AcTest.java und erhalten diese Fehler:
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 Fehler
Muss ich ändere meine CLASSPATH Variable? Ich weiß es sagt meine Klasse ist nicht im richtigen Unterverzeichnis, aber wie bekomme ich es dort? Wenn ich einen Paketnamen erstelle, ist es in Ordnung, einen zufälligen Namen zu erstellen, oder muss ich ihn dem Verzeichnispfad zuordnen? Ich bin nur sehr verwirrt von der ganzen Situation. Jede Hilfe, die Sie geben könnten, wäre sehr willkommen!
Dies ist eine dumme Frage, aber existieren die ordner "net", "baumli" und "a"? (die den Namen Ihrer Pakete anpassen) – jorgevasquezang
Setzen Sie Person.java und AcTest.java in Benutzer/myname/Desktop/java/accessControl/net/baumli/a/- vorausgesetzt, Sie kompilieren mit der Befehlszeile, legen Sie Ihr Standardverzeichnis auf Benutzer/myname/Desktop/java/accessControl /. Führen Sie dann "javac net/baumli/a/AcTest.java" aus. Sie benötigen keine Klassenpfadvariable, es sei denn, es gibt andere Klassen, die irgendwo gefunden werden müssen. – arcy