Java no Swing?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Java no Swing?

Beitrag von zorn » 28.01.2004 01:33:59

Hallo Forum,

wollte eben ein kleines Java-Progrämmchen starten und erhalte folgende Fehler:

java.lang.NoClassDefFoundError: javax/swing/JFrame
at java.lang.ClassLoader.defineClass0 (ClassLoader.java)
at java.lang.ClassLoader.defineClass (ClassLoader.java:179)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:33)
at kaffe.lang.AppClassLoader$JarSource.findClass (AppClassLoader.java:143)
at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:291)
at java.lang.ClassLoader.loadClass (ClassLoader.java:142)
at java.lang.ClassLoader.loadClass (ClassLoader.java:121)
at kaffe.jar.ExecJarName.main (ExecJarName.java:55)
at kaffe.jar.ExecJar.main (ExecJar.java:75)


Wird swing nicht mit der sdk installiert? Woher bekomm ich swing? Irgendwie hab' ich das Gefühl mir hat's die Installation zerschossen, schliesslich hatte ich schon Java-Gui Programme geöffnet!?
--
kallisti!

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 28.01.2004 03:07:02

Aus dem Bauch heraus würde ich auf Probleme mit dem Classpath tippen. Das ist etwas tricky richtig hin zu bekommen...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Beitrag von zorn » 28.01.2004 03:54:23

Was mich irritiert ist dass ich auf meinem kompletten System nichts swingendes finde.

Locate Swing -- nada
Locate JFrame (als Beispiel) -- niente
Locate awt - 0

???
--
kallisti!

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 28.01.2004 07:15:39

zorn hat geschrieben:Was mich irritiert ist dass ich auf meinem kompletten System nichts swingendes finde.

Locate Swing -- nada
Locate JFrame (als Beispiel) -- niente
Locate awt - 0

???
Das brauchst du auch nicht zu finden. Das ist in diversen jar Files verstreut.
Du must nur wie pdreker gesagt hat den CLASSPATH setzten.

Obwohl mit einem neuen sdk(1.4) sollte der Pfad in dem java/c aufgerufen wird automatisch im CLASSPATH sein..

Ist die .java Datei in dem Verzeichniss in dem du sie aufrufst?

gruss
manuel

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 28.01.2004 08:36:33

Was für eine Java-Version und von wo hast du installiert? Swing ist erst ab java1.3 (oder wars 1.2?) dabei und das ist nicht standardmäßig bei debian dabei.
Welches Programm willst du ausführen?
Schreib mal das Kommando wie du das Programm startest!

cu

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Beitrag von zorn » 28.01.2004 21:05:17

Ich hoffe ihr mein mein PATH Variable mit CLASSPATH. Die zeigt nach :/usr/java/j2re1.4.1_03/bin:/usr/java/j2sdk1.4.1_03/bin: woran man auch die Version erkennt.

Die Programme java und javac kann ich entsprechend aufrufen. Die Programme die ich starten will sind z.B. LimeWire oder freemind, und die haben beide ein Startscript in ihrem folder (z.B. ./freemind.sh).

Thx

Hier das ./freemind script:

#!/bin/sh
echo $@
java -jar ./lib/freemind.jar $@


Und das LimeWire script:

CLASSPATH=".:collections.jar:xerces.jar:jl011.jar:MessagesBundles.jar"
export CLASSPATH
J2SE_PREEMPTCLOSE=1
export J2SE_PREEMPTCLOSE
java -jar RunLime.jar


was folgenden Error auswirft:
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke0 (Method.java)
at java.lang.reflect.Method.invoke (Method.java:255)
at RunLime.main (source file unknown:48)
at java.lang.reflect.Method.invoke0 (Method.java)
at java.lang.reflect.Method.invoke (Method.java:255)
at kaffe.jar.ExecJarName.main (ExecJarName.java:67)
at kaffe.jar.ExecJar.main (ExecJar.java:75)
Caused by: java.lang.NoClassDefFoundError: javax/swing/JWindow
at com.limegroup.gnutella.gui.Main.main (source file unknown:17)
at java.lang.reflect.Method.invoke0 (Method.java)
...6 more
java.lang.NoClassDefFoundError: javax/swing/JDialog
at RunLime.displayError (source file unknown:160)
at RunLime.showInternalError (source file unknown:139)
at RunLime.main (source file unknown:51)
at java.lang.reflect.Method.invoke0 (Method.java)
at java.lang.reflect.Method.invoke (Method.java:255)
at kaffe.jar.ExecJarName.main (ExecJarName.java:67)
at kaffe.jar.ExecJar.main (ExecJar.java:75)


THX
--
kallisti!

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 29.01.2004 09:17:10

zorn hat geschrieben:Ich hoffe ihr mein mein PATH Variable mit CLASSPATH. Die zeigt nach :/usr/java/j2re1.4.1_03/bin:/usr/java/j2sdk1.4.1_03/bin: woran man auch die Version erkennt.

Die Programme java und javac kann ich entsprechend aufrufen. Die Programme die ich starten will sind z.B. LimeWire oder freemind, und die haben beide ein Startscript in ihrem folder (z.B. ./freemind.sh).

Code: Alles auswählen

java -version
liefert da verlässlichere Ergebnisse. Ist ja theoretisch nicht ausgeschlossen, dass der o. g. Pfad irgendwohin umgebogen ist ;-)

Grüße, Marco

Benutzeravatar
eC
Beiträge: 354
Registriert: 24.07.2002 13:34:13
Wohnort: karlsruhe

Beitrag von eC » 29.01.2004 09:46:43

zorn hat geschrieben:Ich hoffe ihr mein mein PATH Variable mit CLASSPATH.
THX

Nein,

PATH ist dafür, das er die binaries java, jar, javac,.... findet.
CLASSPATH wird benutzt um den Programmen mitzuteilen, wo sich die
libraries befinden.
Bei mir sieht das teilweise so aus (bitte anpassen :))

Code: Alles auswählen

JAVA_HOME=/usr/local/java
CLASSPATH=.:/usr/local/java:/usr/local/j2ee/lib/j2ee.jar:/usr/local/classes/classes12.zip:$CLASSPATH
PATH=$PATH:/usr/local/java/bin
steht bei mir in der .bashrc.


gruss

eC

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Beitrag von zorn » 29.01.2004 10:42:18

Oh Mann - ich dachte ich versteh das - man kanns ja auch kompliziert machen:

java -version:

Kaffe Virtual Machine

Copyright (c) 1996-2002 Kaffe.org project contributors (please see
the source code for a full list of contributors). All rights reserved.
Portions Copyright (c) 1996-2002 Transvirtual Technologies, Inc.

The Kaffe virtual machine is free software, licensed under the terms of
the GNU General Public License. Kaffe.org is a an independent, free software
community project, not directly affiliated with Transvirtual Technologies,
Inc. Kaffe is a Trademark of Transvirtual Technologies, Inc. Kaffe comes
with ABSOLUTELY NO WARRANTY.

Engine: Just-in-time v3 Version: 1.1.3 Java Version: 1.1


Keine Ahnung ob das mit meiner PATH übereinstimmt! Aber jetzt kommts:

which java zeigt:
/usr/bin/java
welches ein link nach: /etc/alternatives/java
welches ein link nach: /usr/lib/kaffe/bin/java
ist????

ich dachte java sitzt in
/usr/java/j2re1.4.1_03/bin:/usr/java/j2sdk1.4.1_03/bin

Ist mir zu hoch...
--
kallisti!

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 29.01.2004 10:55:06

zorn hat geschrieben:Oh Mann - ich dachte ich versteh das - man kanns ja auch kompliziert machen:

java -version:

Kaffe Virtual Machine
:-o

Mein Tipp: sorge dafür, dass die JVM von Sun verwendet wird, vermutlich treten dann die Probleme nicht mehr auf.

Code: Alles auswählen

which java
und ein Verfolgen der Links dahin sagt dir vielleicht, wo du drehen musst.

Grüße, Marco

Benutzeravatar
zorn
Beiträge: 697
Registriert: 19.08.2003 00:42:10
Wohnort: Berlin
Kontaktdaten:

Beitrag von zorn » 29.01.2004 11:46:04

THX!

Hab einfach die links in /usr/bin/java* und jar gelöscht und schwup ist meine PATH variable am start mit dem korrekten link.
Woher hab ich nur dieses Kaffee?
Naja...

BTW:

Wasn /etc/alternatives für ein Verzeichniss? Kenn ich ja gar nicht....
--
kallisti!

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 29.01.2004 11:59:47

zorn hat geschrieben: Woher hab ich nur dieses Kaffee?
Das ist eine freie Java-Version (leider nur auf dem 1.1er Stand). Das hast du dir wahrscheinlich mit installiert als du irgendetwas installiert was, was von java abhängt.

Beim der Pfadvariable kann ich dir empfehlen, zuerst die java-Verzeichnisse hinzuschreiben und dann den allten Pfad. Dann hätte er zuerst die sun-Dinger gefunden und dann die von Debian in /usr/bin, so wie du es gemacht hast, hat er halt erst das von Debian gefunden und das verwendet.

cu

Antworten