Java Eigene Klassen einbinden

D

Donnidonis

Gast
Ich hab mal wieder eine kleine Frage ;)
Ich hab mir eine eigene Klasse geschrieben, z.B. DezimalTuoDual.
Diese möchte ich jetzt in einem beliebigen Projekt benutzen.
Dazu habe ich in Eclipse bei dem Projekt im Build Path die kompilierte Jar hinzugefügt.
Im Classpath wird auch ein Eintrag dazu ergänzt.
Nur wie benutz ich diese Jar nun? Bekomme sie einfach nicht ins Projekt rein...
Hab mich auch im Java-Forum schon gut belesen, nur irgendwie komm ich nicht drauf...
Hat von euch wer eine Idee, oder es selbst schon gemacht?
 
Hast du einen import getätigt?
Und dann kannst du doch ein Objekt erzeugen und die Methoden nutzen, außer die Klasse hat statische Methoden.

Kann natürlich auch sein, dass du vorher einen Fehler hat (z.B. bei den Modifiern).
 
Bei dem Import hänge ich fest...
Ich habe mine Klasse vorher als eine .jar Exportiert. Das ist die, die ich öfter nutzen will.
Dann lege ich mir ein neues Projekt an um sie zu Testen. Dannach lege ich in meinem Projektordner den Unterodner "lib" an. Dort lege ich dann meine .jar ab. Diese füge ich dann über den BuildPath mit Add external JAR hinzu. Jetzt ist nur die Frage, wie importiere ich sie?... Da hänge ich einfach fest...
 
Bei nur einer Klasse ist es vllt. sinnvoller, diese direkt in das Projekt zu kopieren... :)

Ansonsten müsstest du die JAR Datei einfach ins Projekt einbinden (Stichwort Add External JARs in Eclipse) und dann kannst du ganz normal Objekte erstellen.
 
Bekomm es immernoch nicht so ganz hin....
Hab mal ein Bild angehängt wieweit ich jetzt bin...
Der Import fehlt mir jetzt noch..
Jar ist über Build Path -> Add External JAR hinzugefügt worden
 
Heißt denn die Klasse in der DezimalToDual.jar auch DezimalToDual.java? Und ist diese Klasse innerhalb eines packages? Denn dann müsstest du beim import auch den package name mit angeben.

Alternativ kannst du dir den import manuell auch sparen und einfach ein versuchen ein Objekt von der Klasse anzulegen. Eclipse schlägt dann von alleine vor, die Klasse zu importieren, wenn alles richtig gemacht wurde.
 
Zuletzt bearbeitet:
Auf dem src-Ordner Rechtsklick > New > Package
Dann kannst du deine Klasse dorthin verschieben.
 
Eigentlich schreibt man es "Decimal". Evtl. liegt da (unter anderem) der Fehler?
 
Ich hab es gerade mal ausprobiert. Sollte eigentlich genau so gehen. Wichtig ist nur der Eintrag in den Build Path und dass du dann import <deinVergebenerPackagename>.<DeineKlasse> verwendest, und es funzt.

Den Namensraum deiner Bibliothek, den du wahrscheinlich vergessen hast, findest du auch, wenn du auf den Pfeil neben der JAR klickst! Siehe Bild.
 

Anhänge

  • olol.jpg
    olol.jpg
    54,3 KB · Aufrufe: 2.173
  • olol2.jpg
    olol2.jpg
    12,9 KB · Aufrufe: 1.439
Zuletzt bearbeitet:
Moin!

Also wie bereits genannt, leg deine Klasse am besten in einer Paketstruktur ab.
Die sieht meistens aus wie eine umgekehrte URL.

z.B. com.sun.java, oder org.apache.ant (1. Teil "länderkürzel"; 2. Teil "Firmenname"; 3. Teil "Produktname")

Also geh zunächst in dein Projekt wo die Klasse abliegt (Eigene Library) und erzeuge die Package Struktur:
Im Package Explorer rechtsklick aufs Projekt --> new --> package und dann tipselst du deinen package Namen ein.
(z.b. de.derdoedel.eigenelibrary).
Danach verschiebst Du die Klasse per Drag'n'Drop in dieses Paket.
Dann kannst Du das Projekt als Jar exportieren.

Die Jar wird dann wie folgt eingebunden:
Im Package Explorer rechtsklick aufs Projekt --> Build Path --> Configure Build Path.
Dann in dem Fenster den Reiter "Libraries" auswählen und über den Button "Add Jars" (NICHT EXTERNAL JARS!!! external Jars ist nur gedacht für Jarfiles die außerhalb des Projekts liegen, bei dir hast du ja aber einen
lib Ordner innerhalb des Projekts, daher über "Add Jars") die Jar Datei aus dem Lib-Ornder des Projekts hinzufügen.

So und ab sofort wirst du keinen Import mehr händisch schreiben! (Ok 99% vielleicht ;D)

Jetzt erzeuge einfach eine Instanz der Klasse die Du eingebunden hast, z.B.

Code:
Foo foo = new Foo();

Jetzt wird dir Eclipse das natürlich rot unterringeln, weil er Foo noch nicht kennt. (import fehlt).
Jetzt drücke Strg+Shift+O (Organize Imports) und taddaaa, der import wird automatisch geschrieben und du musst ihn nicht händisch tippen!
 
Außer es gibt in seiner lib zwei Definitionen von Foo:

de.derdoedel.lib1.Foo
de.derdoedel.lib2.Foo

dann muss er es doch machen, weil "organize" nicht wissen kann, welche Klasse gemeint ist ;)

Ah ist das geil, richtige Besserwisserei hier :D
 
F_GXdx schrieb:
dann muss er es doch machen, weil "organize" nicht wissen kann, welche Klasse gemeint ist ;)

Correctomundo, passiert ja auch, wenn man das erste mal in ner Klasse z.B. ne List<String>, definiert, da fragt Organize imports auch, ob jetzt java.util.List gemeint ist oder irgend ne Andere^^

Trotzdem: Strg+Shift+O > Händisches Imports schreiben!
 
Danke für eure Hilfe, ich hab es jetzt hinbekommen.
Musste es noch in ein Package verschiben, danke :)
 
Zurück
Oben