Newsgroup Archiv - Beiträge

auf www.Bastie.de

Dll entladen

Frager: Lars Laskowski vom: Dienstag, 28. November 2000
Hallo,
ein Dll die per System.loadLibrary (...) geladen wurde ... wie kann ich diese wieder entladen, ohne Java zu beenden ?
Danke
Lars
1, Antwort: Thomas Foerster vom: Dienstag, 28. November 2000
AFAIK gar nicht! Das ist Sache des Betriebssystems. Ausserdem kannst Du ja gar nicht wissen, ob die Library nicht auch noch von anderen Programmen verwendet wird.
Thomas
1.1 Antwort: Lars Laskowski vom: Donnerstag, 30. November 2000
Klar weiß ich ob die Dll noch verwendet wird .... sie wird ja nur von dem Programm verwendet ... also weiß ich genau ob sie noch benötigt wird oder nicht. unter C/C++ kann ich schließlich auch meine Dll's entladen ... warum also nicht auch in Java ?
1.1.1 Antwort: Aljoscha Rittner vom: Donnerstag, 30. November 2000
Was faktisch keine Auswirkung hat, wenn ein anderes Programm die DLL zusätzlich nutzt. Das du sagst, du wärest der einzige Nutzer ist auf einem Multitasking-System letztendlich eine akademische Frage (wie häufig kann denn dein Programm gestartet werden?)
Das Java kein Unload hat liegt an der logischen Konsequenz der Nutzung des gc() (wobei das loadLibrary dem genau entgegen sprechen würde ;-)
Anscheinend ist es im VM-Design leider so, dass gelinkte Objekte (per native-Methoden) ihre Libs bis zum letzten Atemzug benötigen. Ich hoffe nur dass der gc() wenigsten die Lib freigibt, wenn dem nicht mehr so ist. Das kann man aber leicht überprüfen.
Gruß,
Josch.

zur Übersicht

all rights reserved © Bastie - Sebastian Ritter @: w³: http://www.Bastie.de
Diese Seite ist Bestandteil der Internetpräsenz unter http://www.Bastie.de


Java Cobol Software Resourcen Service Links Über mich Zum Gästebuch Forum