반응형



Main.java

  

   1 public class Main

  2 { 
  3     public static void main( String[] args ) throws Exception
  4     { 
  5         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/commons-io-2.0.1.jar" ); 
  6         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/commons-lang-2.5.jar" ); 
  7         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/commons-logging-1.1.1.jar" ); 
  8         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/jcl-over-slf4j-1.5.10.jar" ); 
  9         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/log4j-1.2.15.jar" ); 
 10         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/slf4j-api-1.5.10.jar" ); 
 11         JarFileLoader.addFile( "c:/workspace/mavenWork/jarClassLoader/lib/slf4j-log4j12-1.5.10.jar" ); 
 12         Logger LOGGER = LoggerFactory.getLogger( Main.class ); 
 13         LOGGER.info( "ok" ); 
 14     } 
 15      
 16 } 
 17 

JarFileLoader.java
  1 import java.io.File;
  2 import java.io.IOException;
  3 import java.lang.reflect.Method;
  4 import java.net.URL;
  5 import java.net.URLClassLoader;
  6 
  7 public class JarFileLoader
  8 {
  9 	@SuppressWarnings( "rawtypes" )
 10 	private static final Class[]	parameters	= new Class[] { URL.class };
 11 	
 12 	public static void addFile( String s ) throws Exception
 13 	{
 14 		File f = new File( s );
 15 		addFile( f );
 16 	}
 17 	
 18 	public static void addFile( File f ) throws IOException
 19 	{
 20 		addURL( f.toURI( ).toURL( ) );
 21 	}
 22 	
 23 	public static void addURL( URL u ) throws IOException
 24 	{
 25 		URLClassLoader sysloader = ( URLClassLoader ) ClassLoader.getSystemClassLoader( );
 26 		Class< URLClassLoader > sysclass = URLClassLoader.class;
 27 		try
 28 		{
 29 			Method method = sysclass.getDeclaredMethod( "addURL" , parameters );
 30 			method.setAccessible( true );
 31 			method.invoke( sysloader , new Object[] { u } );
 32 		}
 33 		catch ( Throwable t )
 34 		{
 35 			throw new IOException( "Error, could not add URL to system classloader" );
 36 		}
 37 	}
 38 }



저는 주로 lib 폴더를 만들어 모든 jar 파일을 다 때려넣고 다같이 묶어 버리지만 

위와 같은 방법도 유용하게 쓰일것 같아 메모차원에서 남겨둡니다. 


소스는 파일은 세바니 님의 블로그에 있으니 아래 링크를 타고 가셔서 받으시면 됩니다.






출처 : http://seban21.blog.me/70163915184







반응형

+ Recent posts