aspose file tools*
The moose likes Java in General and the fly likes Loading java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of JavaScript Promises Essentials this week in the JavaScript forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Loading java "modules"" Watch "Loading java "modules"" New topic
Author

Loading java "modules"

Paolo Lemos
Greenhorn

Joined: Aug 19, 2011
Posts: 5
Hello forum.

In mi application i'm using ServiceLoader to load modules(classes from .jar file) with diferents ClassLoaders in order to completely unload them when not needed from the context of the application and from the JVM itself. I know maybe is not a common topic "unload classes from JVM", there are some conditions for that to happen, so i am making the necesary effort. To make sure if all is working like expected im tracing the load and unload of classes with -XX:+TraceClassLoading and -XX:+TraceClassUnloading, the info from this parameters shows me that i can do a complete unload of any module from mi app and from the JVM itself (unload from the JVM happens during a complete GC). All this seems to work fine... but mi question is why the .jar files from where the module classes was loaded are keep open by the JVM?, that .jars cant be removed but the JVM says to have unloaded the classes from them. Obiusly this is during JVM execution, but why keep open that .jar files if the JVM has no class loaded from them?, there is any thing i can do to force the JVM to free that .jar files?.

Thanks in advance, and sorry bad english.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14338
    
  22

Hello Paolo, welcome to the Ranch.

You're asking quite a specific question about an advanced topic, and I don't have a direct answer for you. I think the question is hard to answer, because it depends on the implementation details of the JVM. One place you could start looking is at the source code of OpenJDK (Oracle's Java 6 and Java 7 are almost equal to OpenJDK). But I think it will not be an easy task to find this out from the source code...


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
Paolo Lemos
Greenhorn

Joined: Aug 19, 2011
Posts: 5
Jesper de Jong wrote:Hello Paolo, welcome to the Ranch.

You're asking quite a specific question about an advanced topic, and I don't have a direct answer for you. I think the question is hard to answer, because it depends on the implementation details of the JVM. One place you could start looking is at the source code of OpenJDK (Oracle's Java 6 and Java 7 are almost equal to OpenJDK). But I think it will not be an easy task to find this out from the source code...


Glad to hear something from somebody. Thanks!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Loading java "modules"