eigene Bibliothek in Java importieren

gbunge

Aktives Mitglied
Hallo,

meine eigenen Utility-Klassen möchte ich in einer Bibliothek ablegen, um sie
mehrfach verwenden zu können.
Sie sollen importbar sein wie die Java-Klassen.

Folgendes habe ich getan:
1. Ordner "HOME/myjava/util/julian" angelegt.
2. den Ordner im HOME/.bashrc in den CLASSPATH geschrieben
3. im Java-File Julian.java den Packagenamen in "package julian;" geändert
4. im Ordner "HOME/myjava/util/julian" mit "javac Julian.java" kompiliert und Julian.class erzeugt
5. im Ordner "HOME/myjava/util/julian" mit "jar cvf Julian.jar Julian.class" das Julian.jar angelegt
6. in einem Testprogramm "Pakettest"
Java:
package pakettest;

import myjava.util.Julian;
public class Pakettest {
...
}
das Paket Julian importiert.

Das Ergebnis ist eine Fehlerausgabe:
Code:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Uncompilable source code - package myjava.util does not exist
	at pakettest.PaketTest.<clinit>(PaketTest.java:9)

was habe ich falsch gemacht?

Gruß gbunge
 
Zuletzt bearbeitet:
Normalerweise hast du ein Java-Root-Source Verzeichnis. In diesem hast du Unterverzeichnisse, die deine Package-Struktur abbilden.
Bei dir scheint es HOME zu sein.

Mach deinen javac-Aufruf also aus dem HOME Verzechnis.
Dein Compile-Aufruf sieht dann so aus:
javac myjava/util/julian.java

Dann Erzeug auf die gleiche Art und Weise dein Jar-File.

Du kannst das Jar-File, das ja nichts anderes als ein ZIP-File ist, mit einem Zip-Utility Programm öffnen. Dort müsstest du die Package-Struktur als Verzeichnisse wieder erkennen.

Dann sollte es möglich sein, dein Jar-File in ein anderes Projekt einzubinden.
 
Hallo,
mein Problem hast Du nicht ganz erfasst. Die Class-Datei und die Jar-Datei habe ich bereits.
Beide liegen im neuen Bibliothekspfad
Code:
HOME/myjava/util/julian
Die Klassen wollte ich dann importieren mit:
Java:
import myjava.util.julian.Julian.*;
und genau das ist fehlerhaft.
Die Jar-Datei entzippt enthält nur die Class-Datei Julian.class und den Ordner META-INF. In diesem die MANIFEST.MF.

Gruss gbunge
 
Benutzt du denn eine IDE ?
Wenn ja, bei eclipse funktioniert das so:

- Klassen in ein Projekt packen, von mit aus "myJava"
- Das ding da exportieren
- im neuen projekt die Properties öffnen
- "add external JAR" und dann die "myJava" jar auswählen.
Du hast nun vollen Zugriff auf alle klassen der "myJava.jar"
 
NetBeans ist meine IDE.
Meine Klasse steht im Ordner 'HOME/myjava/util/julian'
Anhang anzeigen 7719
Wie importiere ich sie nun?

Der Versuch die Jar-Datei unter Properties als Library in NetBeans in den Library-Ordner ein zuschreiben hat zwar geklappt, aber Julian ist immernoch unbekannt im Projekt.

Beim googeln habe ich diese Vorgehensweise gefunden: JAVA-Packages erzeugen und benutzen

Daran habe ich mich gehalten. Aber offensichtlich habe ich etwas falsch gemacht. Es klappt nicht.
 
Zuletzt bearbeitet:
Hallo,
mein Problem hast Du nicht ganz erfasst. Die Class-Datei und die Jar-Datei habe ich bereits.
Beide liegen im neuen Bibliothekspfad
Code:
HOME/myjava/util/julian
Du hast zwar ein Jar-File, aber ohne Package-Information.
Daher sollst du ja auch den jar-Aufrufe aus dem HOME Verzeichnis machen. Dann bekommst du ein Jar-File, in dem die class-Datei in einer Directory-Struktur zu liegen kommst.

Danach sollte auch der Import funktionieren.
 

Neue Themen


Zurück
Oben