분류 전체보기 (199)
ººº::Development™:: (66)
ººº::Learning™:: (31)
ººº::Information™:: (37)
ººº::Note™:: (11)
ººº::Photo™:: (50)
ººº::zEtc™:: (3)
rss

믹시
tistory 티스토리 가입하기!
'jar'에 해당되는 글 2건
2008. 10. 20. 11:41
회사 프로젝트때문에 공개 프로젝트를 다운받아서 실행해보고자 하는 가운데 몇가지 api가 필요해 이러지리 찾는 가운데 jnlp.jar 파일을 도통 찾을 수 가 없었다.

이러저리 구글링하고 찾은 결과 1.2 버전까지는 다운받을 수 있는곳이 있다고 하고, 1.5 버전부터는 jdk를 설치하면 함깨 설치된다고 나와있다. 헉, 이말은 머야?
알아봤더니 jdk설치 경로에 함께 설치가 되어있다.

:: 경로보기 ::
%JDK_PATH%\sample\jnlp\servlet


위 폴더에 보면 jnlp.jar 파일이 존재한다.! 이걸 모르고 이리저리 돌아댕겼따니!ㅠㅠ;
혹 저와같은 삽질을 방지하기위해서!!^_^;

:: 이 글을 읽는 모든 분들께 오늘하루 즐겁고 행복만이 가득하기를 ::


2008. 8. 12. 17:40
이번 프로젝트에서 로그분석 엔진을 만드는 과정에서 어떻게 만들까 고민을 하다가 플러그인 형식으로 작성을 해보자 생각을 하고 프로젝트를 진행하는 과정에서 어떻게 작성한 플러그인을 메인 클래스에서 로드를 할까? 고민을 하다가 찾은 방법으로 다 필요없이 ja자체를 동적으로 로드하는 방법인다.

열마다 말보다 한번의 소스코드가 더 보기 편하다.
String   strTemp   = "mainClass";
File jarFile    = new File( "jar file path" );
URL[] urls = new URL[]{ new URL( "jar:" + file.toURL() + "!/" ) };
ClassLoader    classLoader = new URLClassLoader( urls );
Class    tempClass    = classLoader.loadClass( temp.mainClass );        // plugin class load
Object    object    = tempClass.newInstance();
Method    method    = tempClass.getMethod( "optionSet",
                                                            new Class[]{
                                                                    strTemp.getClass()
                                                            } );
method.invoke( object, strTemp );

알아 보겠는가?

모르면 그냥 일단 작성해보면서 알아보면 된다.ㅋㅋㅋ 나도 그랬으니깐( 완전 깡패.. )
다른코드는 크게 상관이 없지만 jar 파일을 로드할 때와 단순한 class파일을 로드할 때 약간의 차이가 있다.
아래는 클래스를 로드할 때의 코드이다.
File jarFile    = new File( "class package path" );      // 파일명이 아닌 폴더면만 기제
URL[] urls = new URL[]{ new URL( file.toURL() ) };

틀린점을 구분하겠는가?
jar파일을 로드할 때는  URL class에 jar를 로드한다는 것을 명시해 줘야 한다는 것이다.

그리고 로드가 정상적으로 이루어졌으면 다른 코드는 크게 상관이 없지만 로드한 클래스의 method를 호출 하는 방법을 설명하겠다.
Method 클래스는 자신이 호출 하고자 하는 method의 파라미터 type을 설정해 주고 실제 method 호출과 파라미터 전달은 method class의 invoke method를 이용해서 호출해 주면 된다.




prev"" #1 next