Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2007

Tip: Looking for answers? Try searching our database.

Building classpath at runtime

Thread view: 
goyald@gmail.com - 24 Jan 2007 02:12 GMT
Friends
I see this question appearing very often in forums but couldn't find a
satisfactory answer. Following is what I am trying achive
1. I have a java application that depends on several classes that are
packaged as jars.
2. Application runs as java -jar "XXX" -cp <classpath>
3. I sometimes need to create emergency fixes or jars. I will like to
put them in an "updates" directory. As names of these jar files will be
determined later, I want my program to scan "updates" directory at
startup, and prepend (before   initial classpath) any discovered jar
files.
4. I know that ClassLoader.loadClass() is a viable method but most of
my code takes a new <class>() approach. I will appreciate any
suggestions.

Following is my sample test code.

//////////////////////////// Sample Code
///////////////////////////////

import java.io.FileInputStream;
import java.util.Properties;

public class PropertiesTest {
   public static void main(String[] args) throws Exception {

       System.getProperties().list(System.out);
       // My original classpath does not have c:\\updates
       System.setProperty("java.class.path",
"=c:\\updates;.;C:\\Program Files\\Java\\jre1.5.0_06;c:\\updates");
       System.getProperties().list(System.out);
       NewClass myclass = new NewClass();    // >>>>>>>> Need to load
this class from a location "c:\updates"
                       // determined at runtime<<<<
       myclass.hello();
   }
}
Arne Vajhøj - 24 Jan 2007 02:37 GMT
> I see this question appearing very often in forums but couldn't find a
> satisfactory answer. Following is what I am trying achive
[quoted text clipped - 9 lines]
> my code takes a new <class>() approach. I will appreciate any
> suggestions.

My suggestion would be to:
- put the release jars in lib
- put the patch jars in update
- drop the -cp parameter
- let the main program only create a new URLClassLoader with
  first all jars from update and then all jars from lib
  and then call the real main

Arne
goyald@gmail.com - 24 Jan 2007 13:37 GMT
Thanks. I will try that and get back to you.

> goy...@gmail.com wrote:
> > I see this question appearing very often in forums but couldn't find a
[quoted text clipped - 18 lines]
>
> Arne


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.