Jetzt registrieren!
Passwort vergessen?



 
 
 
--------------- --------------- ---------------


jar-Bibiliotheken dynamisch laden



Liebe Experten,

ich möchte alle jar-Bibliotheken, die sich in einem bestimmten Verzeichnis befinden, in den Klassenpfad einbinden, ohne alle einzeln angeben zu müssen.

Hat jemand eine Idee, wie das geht?

Vielen Dank im Voraus,

Matthias
> Artikelbaum anzeigen

Re: jar-Bibiliotheken dynamisch laden


Hallo Matthias,

z.B. so:
build.bat
---------
set CP=
for %%i in (lib\*.jar) do call cp.bat %%i
cp.bat
------
set CP=%CP%;%1


Gruss, Simon

Leider keine Lösung für mich


z.B. so:
build.bat
---------
set CP=
for %%i in (lib\*.jar) do call cp.bat %%i
cp.bat
------
set CP=%CP%;%1

Hallo Simon,

vielen Dank für deine Antwort. Leider löst das mein Problem nicht, denn ich wollte vermeiden, dass ich ein Startskript brauche (die Applikation soll wirklich betriebssystemunabhängig sein).

Viele Grüße,
Matthias

Re: Leider keine Lösung für mich


Hallo,

warum kopierst Du die Bibliotheken nicht da hin wo sie hingehören, nach c:\Programme\Java\j2resonstnochwas\lib\ext

Dann kannst Du Dir den CLASSPATH schenken.

Gruß

Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Re^2: Leider keine Lösung für mich


warum kopierst Du die Bibliotheken nicht da hin wo sie
hingehören, nach c:\Programme\Java\j2resonstnochwas\lib\ext
Seit wann gehören Applikations-Biblotheken ins ext-Verzeichnis?
Das ist sicher keine gute Idee (Versionen!!!)
Der Klassenpfad sollte immer explizit angegeben werden!

Re^3: Leider keine Lösung für mich


Applikationsbibliotheken gehören ins Applikationsverzeichnis und da ist auch kein CLASSPATH nötig. Die richtigen Bibliotheken z.b. die JDBC Treiber usw gehören genau da hin. Auf gar keinen Fall sollte man das einfach willkürlich auf seinen Rechner verteilen. Sonst fehlt bei der Auslieferung die Hälfte.

Gruß

Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Genau owT


-

Re: Leider keine Lösung für mich


Re: jar-Bibiliotheken dynamisch laden


ich möchte alle jar-Bibliotheken, die sich in einem bestimmten
Verzeichnis befinden, in den Klassenpfad einbinden, ohne alle
einzeln angeben zu müssen.
Ich weiss nicht ob das auf Windows geht, aber auf HP-UX mit HP VM habe ich mal einen funktionierenden CLASSPATH mit Wildcards gesehen, da ist dann einfach "verzeichnis\*.jar" drinnengestanden.

Aber "dynamisch" nachgeladen hat er da auch nicht, sondern einfach nur genommen was beim Hochfahren der VM halt da war.

Grüße, Robert

Re: jar-Bibiliotheken dynamisch laden


Moin

Das geht durchaus, allerding nicht ganz so voll-automatisch wie das normale Klassensystem:

URL[] U = new URL[1];
File jarfile = ....;
U[0] = jarfile.toURL();
URLClassLoader URLC = java.net.URLClassLoader (U, ClassLoader.getSystemClassLoader());
Object WAS_AUCH_IMMER_INSTANZ = URLC.loadClass("WAS_AUCH_IMMER", true).newInstance();


Das muss man mit der ersten Klasse (hier mal der einfachheit halber "K1") tun. Wenn K1 dann nach einer Klasse K2 (aus der gleichen jar) sucht wird automatisch URLC angesprochen.

Der URLClassLoader kann gut mit lokal gespeicherten jar's. Man muss allerdings das Recht haben einen neuen ClassLoader zu erzeugen und java.net & java-io zu benutzen (Also bei Applets darf man das so nicht) Ausserdem geht es erst ab 1.2.

Für andere Konstruktoren, Methoden, Felder,... kuck dir java.lang.Class, java.lang.ClassLoader und java.lang.reflect.* an.

cu

Du kannst auf diesen Artikel nicht antworten.

Dieser Artikelbaum ist im Archiv des Experten-Forums von wer-weiss-was zum Thema "Java" archiviert. Es handelt sich um keine aktuelle Diskussion, daher kann auf die Artikel nicht mehr geantwortet werden.

Seite bei ... merken:
del.icio.us digg it facebook tausendreporter yigg it twitter alltagz google Mister Wong oneview Webnews yahoo linkarena coComment Lieblnk als Bookmark einfügen
Stelle deine Frage: