Was stimmt den bei diesem Aufruf nicht?

Bash, Shell, PHP, Python, Perl, CGI
dukoe
Posts: 55
Joined: 2003-01-10 01:15

Was stimmt den bei diesem Aufruf nicht?

Post by dukoe »

hallo,

ich soll zum starten eines chats diese zeile ausführen doch das klappt nicht, warum?

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett/Chat.class -Xmx64 Chat

dann kommt folgende Meldung:

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

was bedeutet das?
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Was stimmt den bei diesem Aufruf nicht?

Post by majortermi »

DukoE wrote: ich soll zum starten eines chats diese zeile ausführen doch das klappt nicht, warum?

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett/Chat.class -Xmx64 Chat

dann kommt folgende Meldung:

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

was bedeutet das?
Es ist wohl nicht wirklich sinnvoll als CLASSPATH eine Klassen-File anzugeben. Entweder du benutzt einfach ein JAR, dann ahst du alles zusammen, oder du setzt "-cp /home/www/web2/files/frett".
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
dukoe
Posts: 55
Joined: 2003-01-10 01:15

hmm..

Post by dukoe »

hallo,

also von einem jar file ist da nicht die rede. Das steht in der install.txt drin:

Unix: [Pfad zum Java-Binary]/java -cp[Pfad zum Verzeichnis mit der Datei 'Chat.class'] -Xmx64 Chat
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin

Re: hmm..

Post by [tom] »

DukoE wrote: Unix: [Pfad zum Java-Binary]/java -cp[Pfad zum Verzeichnis mit der Datei 'Chat.class'] -Xmx64 Chat
Also nur der Pfad - ohne "Chat.class". Oder bekommst du da auch ne Fehlermeldung?

[TOM]
dukoe
Posts: 55
Joined: 2003-01-10 01:15

das geht auch nicht!

Post by dukoe »

so habe mal das eingegeben:

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett/

bekomme dann dieses:

Usage: java [-options] class [args...]
(to execute a class)
or java -jar [-options] jarfile [args...]
(to execute a jar file)

where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.

-cp -classpath <directories and zip/jar files separated by :>
set search path for application classes and resources
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-showversion print product version and continue
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Was stimmt den bei diesem Aufruf nicht?

Post by oxygen »

narf. So:

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett -Xmx64 Chat

Steht doch auch in der Hilfe.
dukoe
Posts: 55
Joined: 2003-01-10 01:15

danke! Aber...

Post by dukoe »

Ja.. lesen müsste man können :)
Jetz bekomme ich wenigstens eine vernünftige Antwort:

Error: Could not load SQL-driver!

Warum denn das jetzt? Ich habe unter: /usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar doch reinkopiert. Muss ich da irgend etwas instalieren?

Zur Info: 1&1 Rott-Server mit Confixx 2.07
Ein Java-chat mit MySql anbindung läuft, also kann das das ja nicht am Java connect zu Mysql liegen oder? Der andere Java chat braucht eigentlich kein mysql-connector-java-3.0.7-stable-bin.jar

Bitte.. was mache ich falsch?
patricks
Posts: 30
Joined: 2003-01-02 19:51
Location: Hannover

Re: Was stimmt den bei diesem Aufruf nicht?

Post by patricks »

Servus,

also was du im Normalfall machen musst, ist den JDBC (das ist MySQL Connector Java) Pfad beim starten mit einzugeben, da kein Hersteller davon ausgehen kann, dass sicher jeder "Treiber" im selben Verzeichnis befindet.
Die Zeile zum Starten müsste dann so aussehen:

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar -Xmx64 Chat

Greetz, PatrickS
dukoe
Posts: 55
Joined: 2003-01-10 01:15

das wars :)

Post by dukoe »

der chat läuft :)
dukoe
Posts: 55
Joined: 2003-01-10 01:15

hmm.. jetzt versteh ich nicht mehr!

Post by dukoe »

Also ich habe den chat mit folgendem aufruf gestartet:

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar -Xmx64 Chat

das klappt auch es kommt die Meldung:

Server running at port 8080


Nur wenn ich jetzt http://www.meinedomain.de:8080 eingebe passiert nichts! im shell erscheint aber folgender fehler:

java.lang.NoClassDefFoundError: gnu/regexp/RE
at RequestHandler.run(RequestHandler.java:95)


was hat das zu bedeuten?
gamecrash
Posts: 339
Joined: 2002-05-27 10:52

Re: Was stimmt den bei diesem Aufruf nicht?

Post by gamecrash »

Was is das überhaupt für ein Chat?
dukoe
Posts: 55
Joined: 2003-01-10 01:15

servlet chat

Post by dukoe »

Basierend auf den FW-Chat denke ich.. hier die url

http://frett.nbcgiga.net/page.php

was bedeutet denn die fehlermeldung von meinem aufruf?
patricks
Posts: 30
Joined: 2003-01-02 19:51
Location: Hannover

Re: Was stimmt den bei diesem Aufruf nicht?

Post by patricks »

Servus,

ich denke da kannst du dir selbst helfen. Im Ordner "doc" befindet sich z.B. eine Dokumentation.
2.2 Das GNU-Regex-Package
Bei einigen Funktionen greift der Chat auf das Package gnu.regexp zurück. Dies gehört nicht zum Standardumfang der Java Runtime Environment und muss nachträglich installiert werden. Das Package kann hier bezogen werden: http://www.cacas.org/java/gnu/regexp/ Weitere Informationen zur Installation des Packages können der dazugehörigen Dokumentation entnommen werden.
Grüße, PatrickS
dukoe
Posts: 55
Joined: 2003-01-10 01:15

bn ich zu doof

Post by dukoe »

Soo habe das
gnu-regexp-1.1.4.jar ins lib ordner rein kopiert und diese dann laut README

export CLASSPATH=/home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/gnu-regexp-1.1.4.jar


Und dann versucht zu starten:

/home/www/web2/files/frett # /usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar -Xmx64 Chat

dann kann die erfolgsmeldung: Server running at port 8080

So dachte ich und rif meine seite mit port :8080 auf und nicht passierte in shell kam wieder die Meldung:

java.lang.NoClassDefFoundError: gnu/regexp/RE
at RequestHandler.run(RequestHandler.java:95)

FAZIT: Ich bin zu blöd für einiges, aber besonders für JAVA!

Wer nimmt sich meiner an und kann mir das mal erklären wie ichs richtig mache?
paranoid
Posts: 14
Joined: 2003-04-27 21:48
Location: 67xxx

Re: bn ich zu doof

Post by paranoid »

Hi,
DukoE wrote:Soo habe das
gnu-regexp-1.1.4.jar ins lib ordner rein kopiert und diese dann laut README

export CLASSPATH=/home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/gnu-regexp-1.1.4.jar


Und dann versucht zu starten:

/home/www/web2/files/frett # /usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar -Xmx64 Chat
Dein Problem: Java sucht Klassendateien im CLASSPATH. Mit dem Parameter -cp setzt du ihn explizit, die Umgebungsvariable wird dann ignoriert => nimm den Pfad zur REGEXP-Klasse mit in die Kommandozeile auf,

hth
Paranoid
dukoe
Posts: 55
Joined: 2003-01-10 01:15

perfekt

Post by dukoe »

Danke @paranoid!

habe folgendes gemacht:

/usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.
jar:/usr/java/j2sdk1.4.1_02/lib/gnu-regexp-1.1.4.jar -Xmx64 Chat

und dann konnte ich schon die Loginseite meines chattes sehen :)

Habe noch eine Frage:

Wie kann ich diesen Aufruf eigentlich in eine start.sh datei einbinden?

Wer kann mir eine hilfestellung geben?
patricks
Posts: 30
Joined: 2003-01-02 19:51
Location: Hannover

Re: Was stimmt den bei diesem Aufruf nicht?

Post by patricks »

Servus, das machst du ganz einfach:

Leg eine Datei "start.sh" an und lege sie in den selben Ordner wie der Chat ist (also wo die Klassen *.class sind). Dann schreibst da in die Klasse rein:

Code: Select all

#!/bin/sh
while true; do
  /usr/java/j2sdk1.4.1_02/bin/java -cp /home/www/web2/files/frett:/usr/java/j2sdk1.4.1_02/lib/mysql-connector-java-3.0.7-stable-bin.jar:/usr/java/j2sdk1.4.1_02/lib/gnu-regexp-1.1.4.jar -Xmx64 Chat
done;
Nun kannst du auch über den Chat neustarten. Die SH-Datei fängt durch die While-Schleife das beenden des Chats auf und startet automatisch neu!!


Greetz, PatrickS