blubbla Geschrieben 5. November 2010 Geschrieben 5. November 2010 Hallo, folgendes Szenario: Ich habe mehrere Versionen einer Anwendung, die ich in java über eine schon bereitgestellte Klasse aufrufen kann. Also z.B. c:\ver1\class.jar - in c:\ver1\runtime\ liegen dann die dlls und c:\ver2\class.jar - in c:\ver2\runtime\ liegen dann die dlls In meiner Java-Anwendung rufe ich eine Methode aus der class.jar auf, welche wiederum mit den dlls in dem runtime Verzeichnis kommuniziert. Der Source-Code der class.jar liegt mir leider nicht vor. Also, ich starte nun in einem batch-File meine Java-Anwendung - vorher setze ich den Classpath mit set path = %path%;C:\v11\class.jar;C:\ver1\runtime\ auf die ver1. Die class jar wird auch gefunden und geladen - aber beim Aufruf der dll-Dateien werden diese nicht gefunden, da das runtime-Verzeichnis nicht im globalen Pfad liegt. Wenn ich mir den aktuellen Java Lib Path ausgeben lasse, steht sowohl das jar-Verzeichnis als auch das Runtime-Verzeichnis drin. Eine Lösung ist natürlich, je nachdem welche Version ich benutzen will, den globalen Classpath im System zu ändern - dann funktioniert auch alles. Meine Frage: Geht es auch dynamisch? - kann ich den globalen Classpath des Systems dynamisch in Java ändern? - falls ich einen eigenen Classloader benutze und dort die Pfade hinzufüge - könnte es funktionieren? Ich bin da skeptisch, da es ja um die Kommunitkation zwischen Dll und jar geht. Falls es jemanden weiterhilft: Es geht im Grunde genommen darum, dynamisch verschiedene MCRs (Matlab Component Runtimes) zu benutzen. Freue mich über Tipps Zitieren
M.A.Knapp Geschrieben 5. November 2010 Geschrieben 5. November 2010 schon -Djava.library.path=<Pfad zu DLLs> ausprobiert ? Zitieren
blubbla Geschrieben 9. November 2010 Autor Geschrieben 9. November 2010 Danke für den Tipp. Mein Problem ist nur: Ich würde das setzen des Classpaths gerne dynamisch hinbekommen - der Code wird also ausgeführt und macht irgendwas, bis ein Algorithmus ausgeführt werden soll. Es wird nun in einer Datenbank ausgelesen, für welche Version dieser Alg. entwickelt worden ist - und dann dementsprechend der (globale?) Classpath gesetzt. Das wäre meine Wunschvorstellung. Zitieren
etreu Geschrieben 10. November 2010 Geschrieben 10. November 2010 System (Java 2 Platform SE v1.4.2)) So kannst du Bibliotheken dynamisch laden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.