(einfaches) Problem mit import und package (export)

  • Themenstarter Themenstarter ErnstC
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
E

ErnstC

Gast
Hallo allerseits,
habe als Entwicklungsumgebung Eclipse und will folgendes machen:

I)
1) Ich habe ein paar Klassen, die ich "anderen" zur Verfügung stellen will. In diesen Klassen gibt es z.B. Methoden, die den Flächeninhalt bestimmter geometrischer Figuren berechnet.

2) Von diesen Klassen will ich nicht den Quellcode veröffentlichen, d.h. ich will genau eine jar-Datei erzeugen (in der sich natürlich keine main-Methode befindet).

3) D.h. auf einem anderen Rechner will ich dann z.B. in einem Projekt in der Methode main(..) die Fläche eines Rechtecks berechnen unter Zuhilfenahme der entsprechenden Methoden meiner Klassen (die in der jar-datei abgelegt sind).

II)
Wie mache ich das in Eclipse?
1)
In Eclipse auf Rechner1 ein Projekt z.B. test1 anlegen.
Eine Klasse erzeugen, in der sich die main(..) Methode befindet.
Ein package erzeugen, z.B. mit dem Namen
packGeo
In diesem Package dann meine Klassen anlegen, die die Fläche verschiedener geometrischer Figuren berechnen. Dann am Anfang jeder Klasse schreiben:
package packGeo;

Dann alles übersetzen und in main(..) zu Testzwecken ein paar Flächeninhalte berechnen lassen.

2)
File --> Export --> Jar-File --> dann das Paket ankreuzen, das man exportieren will und der Pfad und namen angeben, z.B: C:\temp\packGeo.jar

3)
Zu Testzwecken auf einem anderen Rechner, hier Rechner2 genannt mit Eclipse ein Projekt, z.B. test2 anlegen.
Dann eine Klasse anlegen, in der main(..) vorkommt und dort z.B. die Fläche eines Rechtecks berechnen. Dazu muss dann allerdings das Packet packGeo.jar eingebunden werden.
D.h. man schreibt vor main(..)
import packGeo.*

Die Datei packGeo.jar (die auf dem anderen Rechner erzeugt wurde), muss dann noch in den Ordner bin des Projekts kopiert werden.

Leider funktioniert das nicht.
Was mache ich falsch?

Bemerkung:
Woher weiss die JVM des anderen Rechners Rechner2 eigentlich, wie sie mein package auf der Festplatte finden soll, das ich dort irgendwo hinkopiert habe?
Über den classpath vielleicht? Aber wenn die Umgebungsvariable für den classpath gar nicht existiert (mir wurde gesagt, dass man auf das Setzen der Umgebungsvariablen verzichten soll).

mfg
ErnstC
 
Richtig, über den Classpath. Um in Eclipse eine zusätzliche Bibliothek einzubinden, muss diese in den buildpath des Projekts aufgenommen werden.
Rechtsklick auf Projekt -> Properties
 
einfach in den Ordner reinkopieren reicht nicht. Du musst die jar Datei zum Buildpath hinzufügen. Rechtsklick auf das Projekt->Build Path->Add External Archives . Hier wählst du dann dein Jar aus.

Eine Klasse erzeugen, in der sich die main(..) Methode befindet.

eine normale statische Methode ist besser.
 
Joker hat gesagt.:
einfach in den Ordner reinkopieren reicht nicht. Du musst die jar Datei zum Buildpath hinzufügen. Rechtsklick auf das Projekt->Build Path->Add External Archives . Hier wählst du dann dein Jar aus.

---------------------------------------------------------------------
ich erzeuge das Projekt
demo2DTest9
dann das package
pack2DTest9
dann eine Klasse, in der sich main befindet:
Main2DTest9

Dann kopierere ich die jar-Datei unter das Verzeichnis
...bin\pack2DTest9

jetzt markiere ich ich in Eclipse das Projekt
demo2DTest9
dann rechte Maustaste --> Build path --> add external Archives
dort suche ich das jar-File, markiere es und fertig.
Was ich komisch finde:
das markierte jar-File wird nicht in
referenced Librariers angezeigt oder sonst wo angezeigt????


Wenn ich nun compiliere passieren einige Merkwürdikeiten:
a) Kompiler findet nicht das jar-File
wenn ich in den Explorer gehe, fehlt plötzlich das jar-File mitsamt dem package Ordner
b) wenn ich nochmals kompiliere, findet er er plötzlich nicht mehr die main-Methode.
Es ist ziemlich nervig.
Wo mache ich den Fehler?


mfg
ErnstC
 
Das bin Verzeichnis ist das Verzeichnis, wo die class Dateien erstellt werden. Bei einem "clean project" wird das auch mal gelöscht.

Die jar-Datei nicht in das bin Verzeichnis. Kopier sie einfach in das Projektverzeichnis (oder wie üblich Unterverzeichnis "lib"). Dann "refresh" mit Rechtsklick auf das Projekt.
Jetzt fügst Du über die Properties die jar mit "Add Jar" (besser, als "external jar") hinzu.

Fertig.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben