Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

How do I dynamically load/unload Component (jar file) in my java application?

Posted on 2007-12-06
15
Medium Priority
?
6,732 Views
Last Modified: 2013-12-17
My Application demands some components (jar files) to be loaded/unloaded dynamically on request. For example, I have module1.jar and module2.jar etc and on demand my application should be able to load/unload  module1.jar or module2.jar files or both. Could you guys please help me with any java code example of load/unload jar files dynamically (i.e. without restarting the server). Again, please I need sample code for doing this.

Thanks in advance for your help.

Open in new window

0
Comment
Question by:shilpa_rajith
  • 6
  • 5
  • 2
  • +1
15 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 20419706
Loading modules is in the offing for the coming version of Java, but for now, you can load classes dynamically by calling Class.forName or using an explicit classloader. You can keep your classes in jars and they can be either in or out of the classpath. If the latter, load them with a JarURLConnection
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 20419721
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 86

Expert Comment

by:CEHJ
ID: 20419742
Sorry - i meant URLClassLoader not JarURLConnection
0
 

Author Comment

by:shilpa_rajith
ID: 20419926
Thanks a lot for you quick response and sorry for not very descriptive on the question. First, the jar file can be of the same module but diff. versions. i.e. I want to unload Module1.jar version 1 and load latest of the same module say Module1.jar version 2. Second, How to unload a jar file?
Google search returned "Apache Felix OSGi" framework. I never used this. Did you guys ever used this framework? Please provide some code example as It will help me implement it fast.

Thanks a lot in advance.
0
 
LVL 92

Expert Comment

by:objects
ID: 20424012
to unload a jar you need to delete the classloader used to load (thus do not use the system classloader)

http://site.red-illusions.dk/2006/11/04/simple-dynamic-loadingunloading-of-code/
0
 

Author Comment

by:shilpa_rajith
ID: 20540108
Hi Guys,

Sorry for getting back on this late.

What I want here is, Instead of placing a JAR file in lib folder of a webapp, the app should be able to load it dynamically and entire application should be able to refer to it. I want to achieve the same effect of having a JAR file in lib folder of a webapp but dynamically.

Thanks a lot in advance.
0
 

Author Comment

by:shilpa_rajith
ID: 20774842

Thanks a lot to all experts for sending in your responses. I am closing this as I couldn't find an appropriate answer to my question. Probably I will post the question again more clearly may be with example.
Thanks all again.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 20775981
>>I am closing this as I couldn't find an appropriate answer to my question.

All the answers look pretty relevant to me ;-)
0
 

Author Comment

by:shilpa_rajith
ID: 20812214

Dear CEHJ,

I am not sure how to achieve the requirement  i posted on 12.28.2007. i.e get the effect of placing a jar file in lib folder.
e.g. i want to load a jar file in a method say loadJarFile(String jarfilename) and refer to the classes in it in another method (in diff. package) say useClassOfJarFile() method without referring to the URLClassloader object created in loadJarFile() method. Other way of saying is, instead of placing a jar file in lib folder of a webapp, I want to load it dynamically and refer to its classes anywhere in the app. how to achieve this?

Thanks,
Rajith
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 1200 total points
ID: 20813074
You can use reflection to call the methods of any classes that are loaded dynamically, so it's perfectly possible. What's not possible is to declare classes in the code that are not loadable at the entry point (or before) of your application
0
 

Author Comment

by:shilpa_rajith
ID: 20899639

Thanks a lot for the responses. Sorry, I didn't find proper solution to my request. I would like to close/delete this question and would consider putting new one. Thanks again.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 20913276
shilpa_rajith, you should realize how this site works. You have had a lot of help from experts on this question. The fact that you don't like the answers is not really relevant. The answer 'it can't be done' IS AN ANSWER
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

While opting for any web-to-print solution, you need to discuss with your team and some of your end users and know their opinions about your decisions. In this article we list down some questions you need to ask yourself.
When you discover the power of the R programming language, you are going to wonder how you ever lived without it! Learn why the language merits a place in your programming arsenal.
XMind Plus helps organize all details/aspects of any project from large to small in an orderly and concise manner. If you are working on a complex project, use this micro tutorial to show you how to make a basic flow chart. The software is free when…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…
Suggested Courses

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question