반응형
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
반응형
'JAVA,JavaScript' 카테고리의 다른 글
[java][string] Java String에서 해당 문자가 포함되어 있는지 판별하기 (0) | 2014.04.09 |
---|---|
[스윙] GridBagLayout에 JScrollPane 크기지정 및 스크롤 나타나지 않는 문제 수정 (0) | 2014.03.12 |
[Java Timer] ScheduledExecutorService를 이용한 자바 타이머 만들기 (2) | 2013.04.10 |
[java] 간단한 자바 타이머 (3) | 2012.05.01 |
[java][mysql][jdbc] Java JDBC를 이용해 MySql에 한글 저장시 깨짐문제 해결 (0) | 2012.04.26 |