(JAVA): java.xml gibt es nicht unter SuSE Linux?
Marc Reichelt
- programmiertechnik
0 Daniel Thoma0 Marc Reichelt0 Slyh0 Marc Reichelt0 Slyh0 Marc Reichelt0 Slyh
Hi an alle!
Für meine opened2kdb (Datenbank für legale ed2k-Links) möchte ich nun ein Programm mit Java schreiben (grafische Oberfläche).
Nun bin ich mittlerweile soweit dass ich eine kleines Fenster mit JFrame anzeigen lassen kann, und nun will ich die XML-Datei parsen.
Doch wenn ich am Anfang des Dokuments folgenden Code eingebe:
import javax.xml.*;
gibt er mir beim Kompilieren folgenden Fehler aus:
-----
marc@pcmr:/srv/www/htdocs> javac opened2kdb_reader.java
opened2kdb_reader.java:2: package javax.xml does not exist
import javax.xml.*;
^
1 error
-----
Wieso gibt es dieses Paket nicht? Und wie kann ich es nachträglich hinzufügen?
Ich möchte eigentlich nur eine XML-Datei parsen, nicht mehr und nicht weniger.
Bitte helft mir!
Ach ja: Beim Kompilieren werden immer zwei Klassendateien erzeugt, und zwar folgende:
Vielen Dank im Voraus!
Marc Reichelt || http://www.marcreichelt.de/
Hallo Marc,
marc@pcmr:/srv/www/htdocs> javac opened2kdb_reader.java
opened2kdb_reader.java:2: package javax.xml does not exist
import javax.xml.*;
Welche Java-Version verwendest Du denn und warum vernwendest Du * beim Importieren, wenn das Paket nur eine Klassen enthält?
Woran liegt das denn nun?
Solche Dateien werden erzeugt, wenn Du anonyme, innere Klassen verwendest. Also etwas in der Art:
new EventListener() {
public void handleEvent(Event e) {
...
}
}
<wunschdenken>Ich möchte gefälligst eine einzelne Datei!</wunschdenken>
Verwende eine *.jar-Datei
Grüße
Daniel
Hi!
Welche Java-Version verwendest Du denn und warum vernwendest Du * beim Importieren, wenn das Paket nur eine Klassen enthält?
----snip----
marc@pcmr:/srv/www/htdocs> java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
marc@pcmr:/srv/www/htdocs>
----snap----
Woran liegt das denn nun?
Solche Dateien werden erzeugt, wenn Du anonyme, innere Klassen verwendest. Also etwas in der Art:new EventListener() {
public void handleEvent(Event e) {
...
}
}
Aha - ja, ich verwende einen WindowListener, der aktiviert wird wenn das Fenster geschlossen werden soll.
<wunschdenken>Ich möchte gefälligst eine einzelne Datei!</wunschdenken>
Verwende eine *.jar-Datei
Wie kann ich jetzt konkret aus meinen beiden *.class-Dateien eine *.jar-Datei erzeugen?
Oder am Besten: Direkt aus dem *.java-Code?
Bis gleich
Marc Reichelt || http://www.marcreichelt.de/
Hallo,
----snip----
marc@pcmr:/srv/www/htdocs> java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
marc@pcmr:/srv/www/htdocs>
----snap----
Da gibt es kein Package javax.xml. Aber es gibt folgende Packages:
* javax.xml.parsers
* javax.xml.transform
* javax.xml.transform.dom
* javax.xml.transform.sax
* javax.xml.transform.stream
Such dir das passende raus.
Heißer Tipp: In die API-Doku schauen. Oder eine passende IDE installieren,
die das Import-Geraffel für dich übernimmt.
<wunschdenken>Ich möchte gefälligst eine einzelne Datei!</wunschdenken>
Verwende eine *.jar-DateiWie kann ich jetzt konkret aus meinen beiden *.class-Dateien eine *.jar-Datei erzeugen?
Indem du sie inklusive der Verzeichnisstruktur zippst, und die ZIP-
Datei nach "irgendwas.jar" umbenennst.
Dann brauchst du noch ein Manifest im JAR.
Optional könntest du auch das JAR-Tool verwenden, das sich vermutlich
im bin-Verzeichnis deiner Java-Installation befindet. Google hilft
hier.
Oder am Besten: Direkt aus dem *.java-Code?
Schrieb dir ein Skript. Oder nimm Ant. Oder eine IDE, die das kann.
(Ich kenne keine, die das von Haus aus kann. Aber in den meisten
kannst du deine Klassen in ein JAR "exportieren".)
Gruß
Slyh
Hi!
Da gibt es kein Package javax.xml. Aber es gibt folgende Packages:
* javax.xml.parsers
* javax.xml.transform
* javax.xml.transform.dom
* javax.xml.transform.sax
* javax.xml.transform.streamSuch dir das passende raus.
Nun ja:
---snip---
marc@pcmr:/srv/www/htdocs> javac opened2kdb_reader.java; java opened2kdb_reader
opened2kdb_reader.java:2: package javax.xml does not exist
import javax.xml.parsers;
^
1 error
Exception in thread "main" java.lang.NoClassDefFoundError: opened2kdb_reader
---snap---
Habe versucht:
import java.xml.parsers;
Wie kann ich jetzt konkret aus meinen beiden *.class-Dateien eine *.jar-Datei erzeugen?
Indem du sie inklusive der Verzeichnisstruktur zippst, und die ZIP-
Datei nach "irgendwas.jar" umbenennst.Dann brauchst du noch ein Manifest im JAR.
Jau, sehr gut - schau ich mir morgen mal an.
Optional könntest du auch das JAR-Tool verwenden, das sich vermutlich
im bin-Verzeichnis deiner Java-Installation befindet. Google hilft
hier.
Guck ich auch nach...
Oder am Besten: Direkt aus dem *.java-Code?
Schrieb dir ein Skript. Oder nimm Ant. Oder eine IDE, die das kann.
(Ich kenne keine, die das von Haus aus kann. Aber in den meisten
kannst du deine Klassen in ein JAR "exportieren".)
Jo - Shellskript ist hier auf jeden Fall sehr nützlich.
Ant wurde von KDevelop vorausgesetzt, und da ich das nicht habe (Fehler beim Versuch des Parsens: ant nicht installiert) bin ich auf Textdatei und Konsolentools umgestiegen.
Ist auch besser für mich zum Java lernen...
cu
Marc Reichelt || http://www.marcreichelt.de/
Hallo,
Da gibt es kein Package javax.xml. Aber es gibt folgende Packages:
* javax.xml.parsers
* javax.xml.transform
* javax.xml.transform.dom
* javax.xml.transform.sax
* javax.xml.transform.streamSuch dir das passende raus.
Nun ja:
---snip---
marc@pcmr:/srv/www/htdocs> javac opened2kdb_reader.java; java opened2kdb_reader
opened2kdb_reader.java:2: package javax.xml does not exist
import javax.xml.parsers;
Naja, da steht ja jetzt immer noch, daß das Package "javax.xml"
nicht existiert, was auch defintiv richtig ist. *g*
Der Name nach dem letzten Punkt bezeichnet eine Klasse. So wie du
das jetzt gemacht hast, würdest du eine Klasse "parsers" im Package
"javax.xml" einbinden wollen.
(Statt einem Klassennamen kann man auch den Stern als Wildcard angeben.
Das heißt dann nichts anderes, als daß alle Klassen des Packages
importiert werden sollen.)
Was du vermutlich willst, ist "import javax.xml.parsers.*".
Wirf doch einfach einen Blick in die API-Doku, um zu sehen,
was du wirklich brauchst.
Noch ein kleiner Hinweis: Klassennamen werden in Java üblicherweise
mit großem Anfangsbuchstaben geschrieben. Unterstriche werden nicht
verwendet. Stattdessen wir jedes Wort, aus dem der Klassename zusammen-
gesetzt ist, wieder mit großem Anfangsbuchstaben geschrieben.
Ungefähr so: MeineCooleKlasse
Dann kannst du nämlich auch unterscheiden, was ein Package-Name und
was ein Klassenname ist.
Optional könntest du auch das JAR-Tool verwenden, das sich vermutlich
^^^^^^^^
Das sollte übrigens "Alternativ" heißen.
Jo - Shellskript ist hier auf jeden Fall sehr nützlich.
Ant wurde von KDevelop vorausgesetzt, und da ich das nicht habe (Fehler beim Versuch des Parsens: ant nicht installiert) bin ich auf Textdatei und Konsolentools umgestiegen.
Ist auch besser für mich zum Java lernen...
Meinungssache... :)
Ich habe damals nur bei den ersten banalen Versuche ohne IDE gearbeitet.
Wieso sollte man sich selbst geißeln? Schlimm genug, daß es noch immer
Firmen gibt -- und ich nenne jetzt keine Namen -- bei denen praktisch
ohne IDE entwickelt wird. Dabei läßt sich die Produktivität durch die
Verwendung einer anständigen IDE meiner Meinung nach ganz locker um
den Faktor 2-5 steigern...
Von anständigen CVS-Tools möchte ich gar nicht erst anfangen...
Gruß
Slyh
Hi!
Naja, da steht ja jetzt immer noch, daß das Package "javax.xml"
nicht existiert, was auch defintiv richtig ist. *g*Der Name nach dem letzten Punkt bezeichnet eine Klasse. So wie du
das jetzt gemacht hast, würdest du eine Klasse "parsers" im Package
"javax.xml" einbinden wollen.(Statt einem Klassennamen kann man auch den Stern als Wildcard angeben.
Das heißt dann nichts anderes, als daß alle Klassen des Packages
importiert werden sollen.)Was du vermutlich willst, ist "import javax.xml.parsers.*".
Jaaa, das will ich! Und das hat auch geklappt... *Luftsprung*
Wirf doch einfach einen Blick in die API-Doku, um zu sehen,
was du wirklich brauchst.
Ich hoffe dass ich damit jetzt meine XML-Datei einlesen und parsen kann. Mehr brauche ich gar nicht...
Noch ein kleiner Hinweis: Klassennamen werden in Java üblicherweise
mit großem Anfangsbuchstaben geschrieben. Unterstriche werden nicht
verwendet. Stattdessen wir jedes Wort, aus dem der Klassename zusammen-
gesetzt ist, wieder mit großem Anfangsbuchstaben geschrieben.
Ungefähr so: MeineCooleKlasse
Gemerkt: "DocumentBuilder"...
Dann kannst du nämlich auch unterscheiden, was ein Package-Name und
was ein Klassenname ist.Optional könntest du auch das JAR-Tool verwenden, das sich vermutlich
^^^^^^^^
Das sollte übrigens "Alternativ" heißen.
Ahso, lieber mit den Standard-Tools erzeugen?
Jo - Shellskript ist hier auf jeden Fall sehr nützlich.
Ant wurde von KDevelop vorausgesetzt, und da ich das nicht habe (Fehler beim Versuch des Parsens: ant nicht installiert) bin ich auf Textdatei und Konsolentools umgestiegen.
Ist auch besser für mich zum Java lernen...Meinungssache... :)
Ich habe damals nur bei den ersten banalen Versuche ohne IDE gearbeitet.
Wieso sollte man sich selbst geißeln? Schlimm genug, daß es noch immer
Firmen gibt -- und ich nenne jetzt keine Namen -- bei denen praktisch
ohne IDE entwickelt wird. Dabei läßt sich die Produktivität durch die
Verwendung einer anständigen IDE meiner Meinung nach ganz locker um
den Faktor 2-5 steigern...
Von anständigen CVS-Tools möchte ich gar nicht erst anfangen...
Ich wollte ja ursprünglich auch mit KDevelop anfangen, allerdings hat der mir beim Kompilieren den Fehler ausgegeben das Tool "ant" sei nicht installiert, und das braucht er ja.
Also bin ich auf javac und java umgestiegen, und außerdem will ich nem Kumpel von mir (der Windows benutzt) einen guten Einstieg geben - da es die Tools für Linux und Windows gibt ist das optimal.
cu
Marc Reichelt || http://www.marcreichelt.de/
Hallo,
Dann kannst du nämlich auch unterscheiden, was ein Package-Name und
was ein Klassenname ist.Optional könntest du auch das JAR-Tool verwenden, das sich vermutlich
^^^^^^^^
Das sollte übrigens "Alternativ" heißen.Ahso, lieber mit den Standard-Tools erzeugen?
Ich habe das JAR-Tool nie verwendet. Eclipse kann Projekte als JAR
exportieren, und auch gleich das passende Manifest inkl. Main-Class-
Angabe erzeugen. Mehr brauchte ich bisher nicht.
(Übrigens macht das Tool auch nicht viel mehr.)
Ich wollte ja ursprünglich auch mit KDevelop anfangen, allerdings hat der mir beim Kompilieren den Fehler ausgegeben das Tool "ant" sei nicht installiert, und das braucht er ja.
Nimm Eclipse oder Netbeans.
Also bin ich auf javac und java umgestiegen, und außerdem will ich nem Kumpel von mir (der Windows benutzt) einen guten Einstieg geben - da es die Tools für Linux und Windows gibt ist das optimal.
Welche Tools? javac?
Eclipse und Netbeans gibt es auch für alle relevanten Betriebssysteme.
Gruß
Slyh
Hi!
Also bin ich auf javac und java umgestiegen, und außerdem will ich nem Kumpel von mir (der Windows benutzt) einen guten Einstieg geben - da es die Tools für Linux und Windows gibt ist das optimal.
Welche Tools? javac?
Eclipse und Netbeans gibt es auch für alle relevanten Betriebssysteme.
Jo, habe mir am Samstag das Buch "Java ist auch eine Insel" gekauft, und die verwenden Eclipse auch - es muss wohl sehr gut sein, ich werde es demnächst austesten.
Und da es selbst in Java geschrieben ist ist auch super für meinen Kumpel, und dass es JAR-Dateien erstellen kann geradezu ideal... :-D
Dankeschön!
Marc Reichelt || http://www.marcreichelt.de/