kann Klassen aus eigenem Package nicht verwenden

Status
Nicht offen für weitere Antworten.
G

guni

Gast
Hallo,

habe folgendes Problem:

habe 2 Klassen (KlasseA, KlasseB) die beide im gleichen Paket (Paket) liegen.
Klasse A ruft KlasseB auf.
Leider kommt dabei jedes Mal ein Fehler, dass KlasseB nicht gefunden werden kann (obwohl die Datei im gleichen Ordner liegt!)
wenn ich die Package-Zeilen in beiden Dateien auskommentiere, dann funktioniert das Ganze problemlos.

Bitte um Hilfe!

lg guni
Code:
package Paket;

public class KlasseA {
	public static void main(){
		KlasseB ObjektB = new KlasseB();
		System.out.println("Ich bin die Klasse A");
	}	
}
---------------------------------------------
Code:
package Paket;

public class KlasseB {
	public static void KlasseB(){
	}
	public void msg(){
		System.out.println("Ich bin Klasse B");
	}
}
----------------------------------------------
der Fehler:

C:\cdb\meine_sources\javaneu\packagetest>javac KlasseA.java
KlasseA.java:5: cannot find symbol
symbol : class KlasseB
location: class Paket.KlasseA
KlasseB ObjektB = new KlasseB();
^
KlasseA.java:5: cannot find symbol
symbol : class KlasseB
location: class Paket.KlasseA
KlasseB ObjektB = new KlasseB();
 

tfa

Top Contributor
Heißt der Ordner zufällig nicht "Paket"?

Noch ein kleiner Hinweis: Paketnamen schreibt man klein. Variablennamen ebenso.
 
G

guni

Gast
ich habe schon probiert, den ordner paket zu nennen, macht aber keinen unterschied!

danke für den hinweis mit variablennamen, paketnamen - ich werds mir merken :cool:

lg, guni
 

tfa

Top Contributor
Probier mal "javac *" oder "javac paket/*". Ich hab lange nicht mehr an der Kommandozeile kompiliert.
 
G

guni

Gast
hmm ....
ja - jetzt funktioniert das complien ohne Fehler.
Aber ausführen kann ich die Datei dann trotzdem nicht.

ich erhalte einen Fehler:

C:\cdb\meine_sources\javaneu\Paket>java KlasseA
Exception in thread "main" java.lang.NoClassDefFoundError: KlasseA (wrong name:
Paket/KlasseA)
[...]

ich bin ziemlich neu in Java, aber das Ganze wirkt so, als würde Java nach einer KlasseA im UNTERORDNER Paket suchen ... ich habe aber beide Dateien im gleichen Ordner! Ich will (derzeit noch) gar nicht in Unterordner abschweifen!

lg
 
S

SlaterB

Gast
du musst das hier stehen haben:
C:\cdb\meine_sources\javaneu>java Paket.KlasseA


> Ich will (derzeit noch) gar nicht in Unterordner abschweifen

ohne Unterordner auch keine packages!
 

tfa

Top Contributor
@guni: Es ist gut, dass Du auf der Kommandozeile anfängst. Aber wenn es hier einigermaßen läuft, solltest Du auf eine IDE umsteigen.
 
G

guni

Gast
Hallo.

habe den Aufruf mit

java Paket.KlasseA

probiert. Geht immer noch nicht:

liefert folgenden Fehler:

Exception in thread "main" java.lang.NoClassDefFoundError: Paket/KlasseA

hab mal einen Tree auf den übergeordneten Ordner gemacht, damit ihr euch ein Bild von meiner Umgebung machen könnts:

C:\cdb\meine_sources>tree /A
Auflistung der Ordnerpfade
Volumenummer: 00000073 C88B:333A
C:.
+---javaneu
| +---base
| | \---counting
| +---Paket
| \---res
\---meine_classes

mein javac / java rufe ich im Ordner Paket auf. Ein dir auf den Ordner zeigt folgende Dateien:

C:\cdb\meine_sources\javaneu\Paket>dir
Volume in Laufwerk C: hat keine Bezeichnung.
Volumeseriennummer: C88B-333A

Verzeichnis von C:\cdb\meine_sources\javaneu\Paket

17.01.2008 14:54 <DIR> .
17.01.2008 14:54 <DIR> ..
17.01.2008 14:25 494 KlasseA.class
17.01.2008 13:39 191 KlasseA.java
17.01.2008 14:25 453 KlasseB.class
17.01.2008 13:39 147 KlasseB.java
4 Datei(en) 1.285 Bytes
2 Verzeichnis(se), 61.770.244.096 Bytes frei

kann damit irgendwer was anfangen?!?!

lg,
 
G

Guest

Gast
@tfa ... ich habe mal mit eclipse angefangen (größere Projekte im sourceforge ausgecheckt) ...
aber das ganze war mir total unsymphatisch weil ich nicht mehr die Kontrolle über das gehabt habe, was im Hintergund alles gemacht / erstellt wird ...
deswegen bin ich jetzt darauf umgestiegen, alles aus der cmd heraus zu starten und ggf. schreibe ich mir batchdateien in denen ich den classpath richtig setze ...

lg,
 
S

SlaterB

Gast
> habe den Aufruf mit

> java Paket.KlasseA

> probiert. Geht immer noch nicht:

hast du ihn auch vom Verzeichnis C:\cdb\meine_sources\javaneu aus ausgeführt, wie ich es geschrieben habe?
(war natürlich nicht leicht zu sehen)


edit:
tree /A
ist nett, kannte ich noch gar nicht ;)
 
G

guni

Gast
@slaterB:

du hast recht ... das hab ich übersehen ;-)
ja. so geht's!

aber was, wenn meine Ordnerstruktur komplizierter wird. In Wirklichkeit habe ich nämlich einen Base-Ordner in dem ich alle Klassen ablege, die mir irgendwie wichtig erscheinen (Worte eines Anfängers).
im darüberliegenden Ordner habe ich dann mein eigentliches Hauptprogramm.
Jetzt habe ich im Base-Ordner eine Counter.class, die ich sowohl von anderen Klassen aufrufen möchte, die auch im base-package dabei sind, als auch von meinem Hauptprogramm im darüberliegenden Ordner!
Wie löse ich das???

PS.:
vom Prinzip her ist der packagename ja immer gleich dem Ordnernamen, in dem die Klasse liegt, oder?
d.h.
wenn ich eine Ordnerstruktur

C:\cdb\meine_sources\javaneu\Hauptordner>tree /A
Auflistung der Ordnerpfade
Volumenummer: C88B-333A
C:.
+---Unterordner1
| +---UnterordnerA
| \---UnterordnerB
\---Unterordner2

Habe, dann haben alle Klassen ...
... in Unterordner1 den Packagenamen Unterordner1
... in Unterordner2 den Packagenamen Unterordner2
... in UnterordnerA den Packagenamen UnterordnerA
... in UnterordnerB den Packagenamen UnterordnerB

ABER:
die Klassen in UnterordnerA werden
... von Klassen, die im gleichen Verzeichnis liegen gar nicht importiert
... von Klassen, die im Unterordner1 liegen mit import UnterordnerA.Klassenname importiert
... von Klassen die im UnterordnerB liegen können sie nicht importiert werden
... von Klassen im Hauptordner mit import Unterordner1.UnterordnerA.Klassenname importiert

stimmt das?!

tree /A
ist nett, kannte ich noch gar nicht

jaja - ich hab auch ewig gebraucht und alle möglichen Treeprogramme im Netz durchprobiert, bis ich rausgefunden hab, dass das standardmäßige DOS einen /A-Switch hat um da eine vernünftige Darstellung zu erhalten :lol:
 
S

SlaterB

Gast
> Jetzt habe ich im Base-Ordner eine Counter.class, die ich sowohl von anderen Klassen aufrufen möchte, die auch im base-package dabei sind, als auch von meinem Hauptprogramm im darüberliegenden Ordner!
> Wie löse ich das???

du hörst auf das zu tun, mit jar-Archiven kann man sowas machen, allgemein halte dich aber an die package-Struktur


-----------

> die Klassen in UnterordnerA werden
> ... von Klassen, die im gleichen Verzeichnis liegen gar nicht importiert

klappt

> ... von Klassen, die im Unterordner1 liegen mit import UnterordnerA.Klassenname importiert

falsch, mit import Unterordner1.UnterordnerA.Klassenname
wie auch von allen anderen packages aus
(X)

> ... von Klassen die im UnterordnerB liegen können sie nicht importiert werden

doch, siehe (X)

> ... von Klassen im Hauptordner mit import Unterordner1.UnterordnerA.Klassenname importiert

richtig, siehe (X)
 

ARadauer

Top Contributor
"aber was, wenn meine Ordnerstruktur komplizierter wird"

eine IDE nehmen.

2000 klassen in 500 verzeichnisse, mit keine ahnung wie viele tausende zeilen code.....

wer sich seine package ... und import ... selber schreibt, ist selber schuld! da wirds lustig wenn er mal ein ganzes package verschieben muss!
 
G

guni

Gast
Ok ... welche IDE würdet ihr empfehlen?

Ich habe mich mal ein bisschen mit Eclipse gespielt, aber ich habe den Eindruck, dass das endlos kompliziert ist ...
Wollte irgendeine Datei importieren, habe den Classpath entsprechend modifiziert und dann is nix mehr gegangen!

also - was würdet ihr empfehlen?

lg,

@SlaterB ... danke für deine Erklärung - jetzt ist mir das Ganze um einiges klarer!
 

ARadauer

Top Contributor
Ich würde trotzdem Eclipse empfehlen. Persönlich finde ich es extrem angenehm, damit zu arbeiten.
 

guni

Bekanntes Mitglied
habe mir eclipse jetzt mal eingerichtet und nochmal einen Versuch gestartet.
Ich stehe noch ganz am Anfang aber ich muss sagen, dadurch, dass ich in JAVA jetzt schon ein bisschen was gemacht habe (über die Commandline) und so zumindest ansatzweise das Prinzip durchschau (ich komm eigentlich noch aus der strukturierten Programmierung und auch in Perl war die objektorientierung eher ... na ja - nix gegen Perl, aber da is Java schon ein bisschen anders) versteh ich jetzt auch Eclipse schon ein bisschen besser und solche Auto-Korrekturen sind für mich als Anfänger auch nicht schlecht!

lg, guni
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6
V_Fynn03 Klassen Überweisungen tätigen und einzahlen mit 2 Klassen Java Basics - Anfänger-Themen 1
W Abarbeitungsreihenfolge Anonyme Klassen Java Basics - Anfänger-Themen 2
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
E Klassen implementieren Java Basics - Anfänger-Themen 94
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
L Wie teilt man ein Programm in vernünftige Klassen ein? Java Basics - Anfänger-Themen 10
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
A Methode, Klassen Java Basics - Anfänger-Themen 3
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
J Zwei Klassen die sich gegenseitig referenzieren - Bad practice? Java Basics - Anfänger-Themen 4
G Klassen und Objekte Java Basics - Anfänger-Themen 2
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
D Klassen ausgeben Java Basics - Anfänger-Themen 2
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
Queiser Nicht statische Klassen Java Basics - Anfänger-Themen 6
neerual Klassen Wie rufe ich Klassen, die andere Klassen extenden in einer Test Unit auf? Java Basics - Anfänger-Themen 10
J Gleiche Methode in 2 verschiedenen Klassen - Lösung ? Java Basics - Anfänger-Themen 8
G Refactoring von mehreren identischen Klassen Java Basics - Anfänger-Themen 36
O Wrapper Klassen Java Basics - Anfänger-Themen 6
CptK Best Practice Klassendiagramm aus fertigen Klassen erstellen lassen Java Basics - Anfänger-Themen 2
R OOP Instanzierung in verschiedenen Klassen Java Basics - Anfänger-Themen 8
N Project layout eclipse ( seperate ordner für klassen ? ) Java Basics - Anfänger-Themen 1
B Vererbung Abgeleitete Klassen Bestimmter Typ zuweisen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben