Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pakete ???

1 view
Skip to first unread message

Markus Klinkmüller

unread,
Aug 24, 2001, 8:30:03 AM8/24/01
to
Hallo,

bin ein Neueinsteiger und habe folgendes Problem:
Hierbei muss ich erwähnen, dass ich mit der Entwicklungsumgebung "KAWA"
arbeite.

In meinem Programm greife ich auf verschiedene Pakete zu z. B. import
java.awt.*;
import java.io.*; als auch eines welches nicht im Standard zu finden ist.
Das Programm lässt sich compilieren und bringt bei der Ausführung auch das
gewünschte Ergebnis (unter KAWA).
Allerdins möchte ich, dass das Programm durch eine batch-Datei aufgerufen
werden kann.
In der Autoexec.bat habe ich auf c:\jdk1.3\bin verwiesen, so dass die
java.exe gefunden werden müsste.
Gebe ich dann "java hallo" ein /*Datei heißt z.B. hallo.class*/ erscheint
folgende Zeile unter dos.

C:\>java hallo ~1
Exception in thread "main" java.lang.NoClassDefFoundError: hallo (wrong
name: Ha
llo)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

C:\>


Ich denke, dass das Hauptproblem in den Programmpaketen liegt, die im KAWA
zwar definiert, allerdings ansonsten nicht bekannt sind.
Die classen, welche sich in den Paketen befinden, bzw. die Pakete als
solches kann ich auch nirgends finden.
Bei den von mir benutzten nicht standardclassen, konnte ich im KAWA add Java
unter packages ausführen, und alle .java-files die im Header "package
blablabla.bla" stehen hatten wurden im Paket blablalba.bla definiert.
Ist das mit den anderen Paketen, z.B. java.awt usw. auch der Fall?
Und wo kann ich die finden? (evtl. irgendein jar-file?)
Wie kann ich die alle mit meinem Programm in Verbindung bringen, wenn es
nicht unter KAWA laufen soll?

MfG
Markus


grischan glänzel

unread,
Aug 24, 2001, 10:02:00 AM8/24/01
to
hallo ich
hab nicht soo genau durchgelesen
aber könnte es sein das dein Klasse
in echt nicht hallo.class sondern Hallo.class
heißt.
dann sollte es mit "java Hallo" funktionieren
bzw. zumindest solltest du dann eine sinvolle
fehlermeldung im bezug auf deine fehlenden
kawa klassen.

gruß grischan


Walter Hipp

unread,
Aug 24, 2001, 9:59:27 AM8/24/01
to

Markus Klinkmüller schrieb:
> C:\>java hallo ~1

versuch es mal mit:
cd Laufwerk:\in diesem Verzeichnis befinden sich die hallo klassen
java hallo
Gruß Walter


Markus Klinkmüller

unread,
Aug 24, 2001, 9:03:48 AM8/24/01
to

> dann sollte es mit "java Hallo" funktionieren
> bzw. zumindest solltest du dann eine sinvolle
> fehlermeldung im bezug auf deine fehlenden
> kawa klassen.
>
C:\> java Hallo~1
Exception in thread "main" java.lang.NoClassDefFoundError: Hallo~1*/

/*wie steht es denn mit dem Zeichen "~", das erscheint immer unter DOS?

C:\>java Hallo


Exception in thread "main" java.lang.NoClassDefFoundError:

com/lowagie/text/DocumentException

/*dies ist das eine Paket, vielleicht findet er die anderen ja tatsächlich,
oder muss man ihm die irgendwie mitteilen, z.B. das java.awt.*; */


gruss
markus


Paul Ebermann

unread,
Aug 24, 2001, 10:02:51 AM8/24/01
to
> Das Programm lässt sich compilieren und bringt bei der Ausführung auch das
> gewünschte Ergebnis (unter KAWA).
> Allerdins möchte ich, dass das Programm durch eine batch-Datei aufgerufen
> werden kann.
> In der Autoexec.bat habe ich auf c:\jdk1.3\bin verwiesen, so dass die
> java.exe gefunden werden müsste.
> Gebe ich dann "java hallo" ein /*Datei heißt z.B. hallo.class*/ erscheint
> folgende Zeile unter dos.
> C:\>java hallo ~1
> Exception in thread "main" java.lang.NoClassDefFoundError: hallo (wrong
> name: Hallo)
> at java.lang.ClassLoader.defineClass0(Native Method)
[...]

Das Problem liegt hier wohl darin, dass deine Klasse
in Wirklichkeit "Hallo" heißt (ist auch besser so,
Klassen sollten großgeschrieben werden).

Dass die Class-Datei "hallo.class" heißt,
liegt
a) an einem Fehler des Compilers
b) an einem Dateisystem, welches nur Kleinbuchstaben
unterstützt
c) an einer manuellen oder automatischen (KAWA)
Umbenennung der Datei.

Im Fall b) kann man wenig machen (außer wirklich
nur Klassennamen mit Kleinbuchstaben zu verwenden),
bei a) und c) solltest du versuchen, die Datei
einfach so mal umzubenennen (nach "Hallo.class").
Auf Dauer ist dies zwar keine Lösung, aber es
hilft zumindest kurzfristig.

Paul

Markus Klinkmüller

unread,
Aug 24, 2001, 9:21:46 AM8/24/01
to
Klassenname und Name der Datei stimmen nun überein.
Die Ausgabe unter Dos sind nun folgendermaßen aus.

C:\PDF>java hallo


Exception in thread "main" java.lang.NoClassDefFoundError:

com/lowagie/text/DocumentException

Es scheint zumindest nur noch an dem Zusatzpaket zu liegen.
Ursprünglich besteht dieses aus mehrern *.java Dateien.
Wie kann ich ihm die so verständlich machen (mit geben)???
Und falls dies klappen sollte,
Wie verfahre ich auf einem nicht mit Java "vorbelasteten Rechner", auf dem
meine Anwendung laufen soll,
spätesten dann hab ich ja das Problem, dass auch die anderen Pakete
mitgegeben werden müssen.


Hoffnungsvoll
markus

Markus Klinkmüller

unread,
Aug 24, 2001, 9:31:00 AM8/24/01
to

> versuch es mal mit:
> cd Laufwerk:\in diesem Verzeichnis befinden sich die hallo klassen

es gibt nur eine Klasse, bei mir unter c:\blabla\hallo.class,
ich such die Pakete, in denen die jdk Klassen enthalten sind;
und eine Möglichkeit ein Paket, welches nicht im Standard ist ausserhalb
einer Entwicklungsumgebung als solches zu definieren und anzusprechen, damt
mein import blabla.blaba auch funktioniert.

MfG
Markus


Markus Klinkmüller

unread,
Aug 24, 2001, 9:49:52 AM8/24/01
to
Es klappt!!! Ich habe die Klassen, die zum Packet gehören einfach in der
dementsprechenden Reihenfolge, lt. Fehlermeldung (Pfade) hintenangestellt
und es funktioniert .
Die relevanten Java-files müssen vorher compiliert werden.

Frage: Wie verfahre ich auf einem anderen Rechner mit den java.awt.* usw.
Und wo sind die?


MfG
Markus


Paul Ebermann

unread,
Aug 24, 2001, 11:58:20 AM8/24/01
to
> Frage: Wie verfahre ich auf einem anderen Rechner mit den java.awt.* usw.
> Und wo sind die?

Die Standard-Java Klassen sind in rt.jar
(früher classes.zip) - und sollten bei jedem
JRE da sein. Diese musst du also nicht
mitgeben.

Paul

Nico Seessle

unread,
Aug 24, 2001, 1:58:26 PM8/24/01
to
"Markus Klinkmüller" <klinkm...@ecb-gmbh.de> schrieb im Newsbeitrag
news:9m5mpa$pa$1...@news.dtag.de...

>
> > dann sollte es mit "java Hallo" funktionieren
> > bzw. zumindest solltest du dann eine sinvolle
> > fehlermeldung im bezug auf deine fehlenden
> > kawa klassen.
> >
> C:\> java Hallo~1
> Exception in thread "main" java.lang.NoClassDefFoundError: Hallo~1*/
>
> /*wie steht es denn mit dem Zeichen "~", das erscheint immer unter DOS?

Wenn das von ganz alleine immer erscheint, dann solltest du mal dran denken
ein paar Geisterjäger zu ordern :-) Das hast du doch garantiert mit
eingegeben, oder?

> C:\>java Hallo
> Exception in thread "main" java.lang.NoClassDefFoundError:
> com/lowagie/text/DocumentException
>
> /*dies ist das eine Paket, vielleicht findet er die anderen ja
tatsächlich,
> oder muss man ihm die irgendwie mitteilen, z.B. das java.awt.*; */

Hier erscheint "es" dann ja auch schon nicht mehr :-)

Wenn du jetzt noch ein

"java -cp .;C:\PfadZurBibliothek\Bibliothek.jar Hallo"

daraus machst sollte es funktionieren. Als Bibliothek musst du explizit nur
solche angeben, die nicht im JDK enthalten sind, also in deinem Falle also
nur das "iText.jar".

Nico

0 new messages