Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

1

Tuesday, June 19th 2007, 2:37pm

Java Classpath

Ich nutze bereits seit einiger Zeit Eclipse, dass die Verwaltung von Classpath etc. selbst vornimmt und daher meist korrekt funktioniert.
Jetzt habe ich mal selbst testen wollen, im einfachsten Editor zu schreiben und sowie ich die Package-Deklaration nutze, bekomme ich Probleme:

(Klasse KniveLab)
package gruppenuebung08;
...

Quoted


Exception in thread "main" java.lang.NoClassDefFoundError: KniveLab (wrong name: gruppenuebung08/KniveLab)(...)


Die anderen Klassen liegen im selben Verzeichnis, aber ich bekomme es nicht zum laufen. Nur wenn ich aus allen Klassen die Package-Deklaration entferne.
Ich frage mich daher, ob ich eventuell etwas an meiner Classpath-Variablen falsch gesetzt habe? ?(

Wer weiss Rat?

HAVE PHUN!
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

2

Tuesday, June 19th 2007, 3:20pm

RE: Java Classpath

Wie hast du das denn ausgeführt? Wenn du z.b. einen Ordner "uebungen" hast, in dem die ordner "gruppenuebung07", "gruppenuebung08", ... die entsprechenden Packages bezeichnen, dann musst du die Programme folgendermaßen ausführen.

Angenommen du befindest dich im Überordner von "uebungen", dann gibst du in der Konsole das hier ein um die main-Methode der Klasse KniveLab auszuführen:

Source code

1
2
cd uebungen
java gruppenuebung08.KniveLab

und nicht etwa

Source code

1
2
3
cd uebungen
cd gruppenuebung08
java KniveLab

This post has been edited 2 times, last edit by "Schokoholic" (Jun 19th 2007, 3:21pm)


Informatik Minister

Senior Schreiberling

  • "Informatik Minister" is male

Posts: 1,234

Date of registration: Dec 11th 2001

3

Tuesday, June 19th 2007, 3:28pm

RE: Java Classpath

Ich füge hinzu:
Paketdeklarationen in Java
"Fliegenpilze! Löwen!! Das Leben ist gefährlich." -- www.katzundgoldt.de

hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

4

Tuesday, June 19th 2007, 5:08pm

ARGH! *patsch*
Ich hatte mein Verzeichnis versehentlich unter "...\gruppenuebung08\gruppenuebung08\..." angelegt und dort alle Dateien kompiliert. Danach bin ich halt mit "cd .." ein Verzeichnis hoch und war immer noch in "...\gruppenuebung08\...", scheinbar hat Java damit Probleme.
Habe die Dateien einfach hochverschoben und jetzt's gehts.
Besten dank! :D

HAVE PHUN!
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

  • "Schokoholic" is male

Posts: 2,518

Date of registration: Oct 4th 2006

Location: Hannover

Occupation: Haarspaltung

5

Tuesday, June 19th 2007, 5:47pm

Quoted

Original von hamena314
"...\gruppenuebung08\gruppenuebung08\..."

Hehe, Idee dazu: wenn man unter Linux im Ordner "gruppenuebung08" wo die Java-Dateien liegen einen Symbolischen Link auf das aktuelle Verzeichnis setzen würde und den auch "gruppenuebung08" nennen würde, dann könnte man die Dateien auch im Quellenverzeichnis ausführen. Zwar trotzdem nur mit "java gruppenuebung08.MainClass", aber dafür würde man sich ein "cd .." sparen!

Achtung, Geek-Alarm 8)

This post has been edited 1 times, last edit by "Schokoholic" (Jun 19th 2007, 5:48pm)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

6

Thursday, June 21st 2007, 9:54am

Man kann auch eine Projektstruktur wie folgt anlegen:

MyProject/
MyProject/src
MyProject/bin

Dann kommen in 'src' die Quelldateien und in 'bin' die kompilierten Quellen. Das bin-Verzeichnis stellt dann gleichzeitig eine Installation des Programms dar.

Ich meine ungefähr so:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
~$ mkdir MyProject
~$ mkdir MyProject/bin
~$ mkdir MyProject/src
~$ vim MyProject/src/MainClazz.java //just a simple hello world.
~$ cd MyProject/
~/MyProject$ javac -d bin src/MainClazz.java 
~/MyProject$ find .
.
./bin
./bin/MainClazz.class
./src
./src/MainClazz.java
~/MyProject$ cd bin/
~/MyProject/bin$ java MainClazz 
Hello World!
~/MyProject/bin$ cd ..
~/MyProject$ 
~/MyProject$ mkdir src/mypackage
~/MyProject$ cp src/MainClazz.java src/mypackage/
~/MyProject$ vim src/mypackage/MainClazz.java  //insert "package mypackage;"-statement
~/MyProject$ javac -d bin src/mypackage/MainClazz.java 
~/MyProject$ find .
.
./bin
./bin/MainClazz.class
./bin/mypackage
./bin/mypackage/MainClazz.class
./src
./src/mypackage
./src/mypackage/MainClazz.java
./src/MainClazz.java
~/MyProject$ cd bin/
~/MyProject/bin$ java mypackage.MainClazz 
Hello World!

"Der Mensch braucht Schubladen." -- Any Key