'java'에 해당되는 글 6건
2008/08/12 17:40
이번 프로젝트에서 로그분석 엔진을 만드는 과정에서 어떻게 만들까 고민을 하다가 플러그인 형식으로 작성을 해보자 생각을 하고 프로젝트를 진행하는 과정에서 어떻게 작성한 플러그인을 메인 클래스에서 로드를 할까? 고민을 하다가 찾은 방법으로 다 필요없이 ja자체를 동적으로 로드하는 방법인다.
열마다 말보다 한번의 소스코드가 더 보기 편하다.
알아 보겠는가?
모르면 그냥 일단 작성해보면서 알아보면 된다.ㅋㅋㅋ 나도 그랬으니깐( 완전 깡패.. )
다른코드는 크게 상관이 없지만 jar 파일을 로드할 때와 단순한 class파일을 로드할 때 약간의 차이가 있다.
아래는 클래스를 로드할 때의 코드이다.
틀린점을 구분하겠는가?
jar파일을 로드할 때는 URL class에 jar를 로드한다는 것을 명시해 줘야 한다는 것이다.
그리고 로드가 정상적으로 이루어졌으면 다른 코드는 크게 상관이 없지만 로드한 클래스의 method를 호출 하는 방법을 설명하겠다.
Method 클래스는 자신이 호출 하고자 하는 method의 파라미터 type을 설정해 주고 실제 method 호출과 파라미터 전달은 method class의 invoke method를 이용해서 호출해 주면 된다.
열마다 말보다 한번의 소스코드가 더 보기 편하다.
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 );
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() ) };
URL[] urls = new URL[]{ new URL( file.toURL() ) };
틀린점을 구분하겠는가?
jar파일을 로드할 때는 URL class에 jar를 로드한다는 것을 명시해 줘야 한다는 것이다.
그리고 로드가 정상적으로 이루어졌으면 다른 코드는 크게 상관이 없지만 로드한 클래스의 method를 호출 하는 방법을 설명하겠다.
Method 클래스는 자신이 호출 하고자 하는 method의 파라미터 type을 설정해 주고 실제 method 호출과 파라미터 전달은 method class의 invoke method를 이용해서 호출해 주면 된다.
'개발 > ::JAVA™::' 카테고리의 다른 글
| [JAVA] 동적으로 class load (0) | 2008/08/12 |
|---|---|
| [JAVA] ANT 빌드 및 배포 (0) | 2008/07/29 |
| [JAVA] 두 날짜를 입력받아 날짜의 차이를 구하기 (0) | 2008/07/14 |
| [JAVA] 톰켓 스텍 사이즈 조절.. (0) | 2008/07/02 |
| [JAVA] Java 기반 RIA 플랫폼으로서의 Swing++? (0) | 2008/06/24 |
| [JAVA Script] 숫자 1000 단위로 ,찍기 (0) | 2008/03/28 |
Trackback Address :: http://nalnari.tistory.com/trackback/64
2008/07/29 17:27
매번 자바를 사용하는 프로젝트마다 느끼는 거지만 프로젝트 컴파일과 배포는 아주 귀찮은 작업이다.
이런 빌드와 배포를 자동화하기 위해 여러가지 툴이 사용되고 있지만 오래전부터 유닉스/리눅스 환경에서 사용되고있는 make와 유사한 Ant가 등장했다.
Ant는 구조적으로 make와 유사하다고 해야하나? 머 이건 잘 모르겠지만 build.xml에 빌드에 관한 설정을 하고 ant 명령을 수행하면 자동으로 빌드가 이루어지는것을 보면 make와 유사하다고 할 수 있다.
Ant는 자주 사용하는 작업인 컴파일, 압축, 복사, 메일 등의 테스크를 미리 갖추어 놓았기 때문에 make보다 간단하게 빌드 설정을 할 수 있다. - http://ant.apache.org/manual/tasksoverview.html
그럼 지금부터 Ant의 표준빌드 파일인 build.xml을 살펴보자
아래 예는 이번에 회사에서 진행된 프로젝트 build.xml이다.
위와 같이 build.xml을 해당하는 프로젝트 폴더에서 저장후 ant <target name> 식으로 입력하면 된다.
Eclipse에서는 기본적으로 Ant plugin이 설치되어 있기 때문에, Eclipse에서는 바로 실행 가능하다
이런 빌드와 배포를 자동화하기 위해 여러가지 툴이 사용되고 있지만 오래전부터 유닉스/리눅스 환경에서 사용되고있는 make와 유사한 Ant가 등장했다.
Ant는 구조적으로 make와 유사하다고 해야하나? 머 이건 잘 모르겠지만 build.xml에 빌드에 관한 설정을 하고 ant 명령을 수행하면 자동으로 빌드가 이루어지는것을 보면 make와 유사하다고 할 수 있다.
Ant는 자주 사용하는 작업인 컴파일, 압축, 복사, 메일 등의 테스크를 미리 갖추어 놓았기 때문에 make보다 간단하게 빌드 설정을 할 수 있다. - http://ant.apache.org/manual/tasksoverview.html
그럼 지금부터 Ant의 표준빌드 파일인 build.xml을 살펴보자
아래 예는 이번에 회사에서 진행된 프로젝트 build.xml이다.
build.xml 보기
위와 같이 build.xml을 해당하는 프로젝트 폴더에서 저장후 ant <target name> 식으로 입력하면 된다.
Eclipse에서는 기본적으로 Ant plugin이 설치되어 있기 때문에, Eclipse에서는 바로 실행 가능하다
'개발 > ::JAVA™::' 카테고리의 다른 글
| [JAVA] 동적으로 class load (0) | 2008/08/12 |
|---|---|
| [JAVA] ANT 빌드 및 배포 (0) | 2008/07/29 |
| [JAVA] 두 날짜를 입력받아 날짜의 차이를 구하기 (0) | 2008/07/14 |
| [JAVA] 톰켓 스텍 사이즈 조절.. (0) | 2008/07/02 |
| [JAVA] Java 기반 RIA 플랫폼으로서의 Swing++? (0) | 2008/06/24 |
| [JAVA Script] 숫자 1000 단위로 ,찍기 (0) | 2008/03/28 |
Trackback Address :: http://nalnari.tistory.com/trackback/61
2008/07/14 14:16
정리 정리..정리만이 살길이다.!!
이제는 머 오전에 찾아본 코드가 생각이 안나니 원....
어쩔 수 없다 머리가 나쁘면 기록이라도 잘 해놓자!! 기록해 놨다는걸 기억하는게 더 편할거 같다는...
로그 분석때문에 코딩 중에 두 날짜의 차리를 이용해 로우데이터를 수집해야 하는 이슈때문에 만는 코드!
그냥 간단하게 이리저리 찾아서 만든 코드로 유의해야 할 사항은 Calendar를 Set할 때 Month의 Index가 0부터 시작한다는걸 유념해서 원하는 월의 1을 빼서 set 해줘야 한다.
이제는 머 오전에 찾아본 코드가 생각이 안나니 원....
어쩔 수 없다 머리가 나쁘면 기록이라도 잘 해놓자!! 기록해 놨다는걸 기억하는게 더 편할거 같다는...
로그 분석때문에 코딩 중에 두 날짜의 차리를 이용해 로우데이터를 수집해야 하는 이슈때문에 만는 코드!
Date today = new Date ( );
Calendar endDay = Calendar.getInstance ( );
endDay.setTime ( today ); // 오늘로 설정.
Calendar startDay = Calendar.getInstance ( );
startDay.set ( 2000, 3, 12 ); // 기준일로 설정. month의 경우 해당월수-1을 해줍니다.
int count = 0;
while ( startDay ( endDay ) )
{
count++;
startDay.add ( Calendar.DATE, 1 ); // 다음날로 바뀜
System.out.println ( startDay.get ( Calendar.YEAR ) + "년 " + ( startDay.get ( Calendar.MONTH ) + 1 ) + "월 " + startDay.get ( Calendar.DATE ) + "일" );
}
System.out.println ( "기준일로부터 " + count + "일이 지났습니다." );
Calendar endDay = Calendar.getInstance ( );
endDay.setTime ( today ); // 오늘로 설정.
Calendar startDay = Calendar.getInstance ( );
startDay.set ( 2000, 3, 12 ); // 기준일로 설정. month의 경우 해당월수-1을 해줍니다.
int count = 0;
while ( startDay ( endDay ) )
{
count++;
startDay.add ( Calendar.DATE, 1 ); // 다음날로 바뀜
System.out.println ( startDay.get ( Calendar.YEAR ) + "년 " + ( startDay.get ( Calendar.MONTH ) + 1 ) + "월 " + startDay.get ( Calendar.DATE ) + "일" );
}
System.out.println ( "기준일로부터 " + count + "일이 지났습니다." );
그냥 간단하게 이리저리 찾아서 만든 코드로 유의해야 할 사항은 Calendar를 Set할 때 Month의 Index가 0부터 시작한다는걸 유념해서 원하는 월의 1을 빼서 set 해줘야 한다.
'개발 > ::JAVA™::' 카테고리의 다른 글
| [JAVA] 동적으로 class load (0) | 2008/08/12 |
|---|---|
| [JAVA] ANT 빌드 및 배포 (0) | 2008/07/29 |
| [JAVA] 두 날짜를 입력받아 날짜의 차이를 구하기 (0) | 2008/07/14 |
| [JAVA] 톰켓 스텍 사이즈 조절.. (0) | 2008/07/02 |
| [JAVA] Java 기반 RIA 플랫폼으로서의 Swing++? (0) | 2008/06/24 |
| [JAVA Script] 숫자 1000 단위로 ,찍기 (0) | 2008/03/28 |
Trackback Address :: http://nalnari.tistory.com/trackback/58
2008/06/24 12:33
요즘 여기저기 블로그의 RSS 피드를 긇어 모으고있다
그냥 막무가네로 긇어 모아서 쭉 읽어보면서 괜찮은 글들은 스크랩하고 있는데!
오늘은 Swing개발자라고 하는 Ben씨가 만든 새로운 GUI 툴킷이라고 합니다.
한번씩 봐보시길!!!
본문..
'개발 > ::JAVA™::' 카테고리의 다른 글
| [JAVA] 동적으로 class load (0) | 2008/08/12 |
|---|---|
| [JAVA] ANT 빌드 및 배포 (0) | 2008/07/29 |
| [JAVA] 두 날짜를 입력받아 날짜의 차이를 구하기 (0) | 2008/07/14 |
| [JAVA] 톰켓 스텍 사이즈 조절.. (0) | 2008/07/02 |
| [JAVA] Java 기반 RIA 플랫폼으로서의 Swing++? (0) | 2008/06/24 |
| [JAVA Script] 숫자 1000 단위로 ,찍기 (0) | 2008/03/28 |
Trackback Address :: http://nalnari.tistory.com/trackback/53
2007/06/20 18:18
Strus 설치하기
1. Struts를 Binary 버젼 다운 받습니다. (현대 Struts 1.2.4 버젼까지 나와있습니다.)
2. zip 파일의 압축을 풉니다.
※ lib 폴더에는 Struts를 사용하기 위한 struts.jar 파일이 있고,
webapps 폴더에는 5개의 sample war 파일이 있습니다.
※ contrib 은 Struts의 tag library 들이 있습니다.
3. 위에서 보이고 있는 lib 폴더 하위에 있는 모든 *.jar 파일을 Struts를 사용할 웹프로젝트의 WEB-INF/lib 폴더에 복사후 Struts를 사용하면 된다.
'개발 > ::JSP™::' 카테고리의 다른 글
| [Strus] Struts 설치 (0) | 2007/06/20 |
|---|---|
| jsp에서cvs파일로 다운로드 하기 (0) | 2007/04/17 |
Trackback Address :: http://nalnari.tistory.com/trackback/37


이올린에 북마크하기
이올린에 추천하기