깡통 : : ' JAR ' 태그 의 글 목록 
 깡통 
 ' JAR ' 에 해당 되 는 글 2 건 
 2009 . 01 . 16 jar 파일 에서 외부 패키지 사용 하 기 
 2009 . 01 . 12 jar 실행 파일 만들 기 
 2009 . 1 . 16 . 09 : 19 
 jar 파일 에서 외부 패키지 사용 하 기 
 2009 . 1 . 16 . 09 : 19 in Java 
 jar 파일 에서 외부 패키지 사용 하 기 . doc 
 사람 이 밥 만 먹 고 살 수 는 없 듯이 , 프로그램 을 짜 다 보 면 외부 jar 파일 을 이용 해야 하 는 경우 가 
 수시로 생기 게 된다 . 문제 는 , 내 가 짠 프로그램 을 jar 파일 로 배포 해야 할 때 도 내 가 사용 했 던 
 외부 jar 파일 이 필요 하 게 된다는 것 이 다 . 
 내 가 만든 jar 파일 에서 외부 jar 파일 을 사용 해야 한다면 어떤 방법 이 가장 좋 을까 . . 
 내 가 생각 하 기 에 는 내 jar 파일 을 만들 때 외부 jar 파일 도 함께 묶 고 Class - Path 를 잘 지정 해 
 주 는 것 이 가장 좋 은 방법 이 아닐까 싶 다 . 이렇게 해 놓 으면 내 jar 파일 내부 에 있 는 클 래스 들 이 
 외부 jar 파일 을 참조 할 수 있 고 , 외부 jar 파일 역시 내 jar 파일 외부 로 나와 있 어서 실수 로 삭제 되 거나 
 하 는 일 이 발생 하 지 않 는다 . 
 그런데 , 문제 는 java 의 jar 파일 은 이러 한 기능 을 지원 하 지 않 는다는 것 이 다 . 아래 는 jar Document 
 부분 의 Class - Path 에 관한 내용 의 일부 이 다 . 
 Note : The Class - Path header points to classes or JAR files on the local file system , not JAR 
 files within the JAR file or classes on the network 
 있 지만 JAR 파일 내부 , 또는 network 상의 JAR 파일 이나 class 파일 들 은 사용 할 수 없 습니다 . 
 이 글 에서 볼 수 있 듯이 java 에서 는 jar 파일 내부 의 jar 파일 에 대해서 Class - Path 를 지원 해 주 지 
 않 는다 . 즉 , jar 파일 내부 에 외부 jar 파일 을 위치 시켜 놓 고 프로그램 이 무난히 작동 되 기 를 바랄 수 
 없 다는 뜻 이 다 . 
 그렇 다면 어떻게 외부 jar 파일 을 이용 할 수 있 을까 . 크 게 두 가지 방법 이 있 다 . 
 1 ) 외부 jar 파일 의 압축 을 풀 고 , 압축 이 풀린 class 들 을 내 jar 파일 에 묶 어 버리 는 방법 
 2 ) 외부 jar 파일 을 내 jar 파일 의 내부 가 아닌 외부 에 위치 시켜 놓 고 Class - Path 를 설정 하 는 방법 
 . .. 첨부 파일 참고 
 구독 하 기 깡통 
 Posted by 깡통 ~ 
 JAR , jar 패보 
 2009 . 1 . 12 . 12 : 33 
 jar 실행 파일 만들 기 
 2009 . 1 . 12 . 12 : 33 in Java 
 jar ( Java Archive ) 에 대해서 
 1 . jar 파일 이란 : jar 파일 은 archive 파일 이 다 . 
 즉 여러 개 의 파일 을 하나 의 파일 로 묶 는 jar 명령 을 사용 하 여 생성 된다 . 
 이 파일 은 winzip 에서 열 어 볼 수 있 으며 , winzip 에서 열 어 보 면 여러 개 의 파일 들 이 디렉 토리 정보 를 
 가진 채 들 어 있 다 . 
 ( 아무 jar 파일 을 직접 클릭 해 열 어 보 시 라 ) 
 2 . zip 파일 과 다른 점 : winzip 과 다른 점 은 압축 되 어 있 을 수 도 있 고 , 그냥 . .. 하나 로 묶 어 놓 은 파일 일 수 
 도 있 다 . 
 그래서 jar 파일 을 archive 파일 이 라 볼 수 있 다 . 
 이렇게 archive 파일 로 묶 는 이유 는 자바 로 개발 한 여러 클래스 파일 들 또는 패키지 파일 이 있 을 때 , 이 를 
 하나 로 묶 어 두 면 , 
 그 클 래스 들 을 참조 하 기 도 편하 고 , 다운 받 기 도 쉽 다 . ( 애플릿 의 경우 더욱 그러 함 ) 
 3 . jar 명령 사용 하 기 
 : c ( 새로운 archive 파일 을 생성 한다 ) 
 : t list table of contents for archive 
 : x ( 다음 에 지정 한 파일 들 을 archive 파일로 부터 압축 을 푼다 ) 
 : u ( 기존 archive 파일 에 들 어 있 는 파일 을 수정 한다 . ) 
 : v ( 명령 화 면창 으로 진행 사항 에 관한 메시지 를 출력 한다 . ) : 웬만 하 면 써 주 면 좋 음 . . 
 : f ( archive 될 파일 이름 을 지정 한다 . ) : 그래도 생성 될 파일 의 이름 은 써 줘야 겠 죠 ? 
 : m ( 정보 를 manifest 파일로 부터 포함 한다 . ) 
 : 0 ( 저장 만 하 고 , zip 으로 압축 하 진 않 는다 . ) 
 - 클래스 파일 을 압축 하 면 곤란 하 죠 . .. class 파일 의 경우 는 꼭 . . 써 줘야 죠 . . 
 : M ( 추가 되 는 엔트리 에 대한 manifest 파일 을 생성 하 지 않 는다 . ) 
 ( 4 ) - C ( 지정 된 디렉 토리 로 바꾸 고 , 다음 파일 을 포함 한다 . ) 
 : 어떤 파일 이 디렉 토리 이 면 순환 되 면서 처리 된다 . 
 ( 5 ) manifest file 이름 과 archive 파일 이름 은 순서 대로 지정 되 어야 한다 . 
 ( 6 ) manifest file : 뭐 . .. 대단 한 파일 인 줄 알 았 는데 , 열 어 보 면 내용 이 다음 과 같 습니다 . 
 : m 옵션 을 주 어 지정 하 는데 뭐 . ... 중요 한 건 아닌 거 같 으니까 . .. 이런 게 있 다는 것 만 아셔도 될 듯 . . 
 Created - By : 1 . 2 . 2 ( Sun Microsystems Inc . ) 
 4 . 사용 예예 ) jar cvf new . jar 1 . class 2 . class 
 : c 옵션 이 사용 되 었 으므로 일단 은 1 . class , 2 . class 를 묶 으려고 시도 할 것 이 다 . 
 왜 그런지는 아 시 겠 죠 ? ) 
 : v 옵션 이 사용 되 었 으므로 진행 상황 메시지 가 . .. 줄줄 나올 것 이 다 . ( 이건 안 해도 됨 ) 
 : f 옵션 은 c 옵션 사용 시 생성 될 파 일 명 을 지정 ( 반드시 해 주 어야 지정 된 이름 으로 파일 이 생성 된다 . ) 
 예 ) jar cvf new . jar - C test / . 
 : - C 옵션 을 주 면 현 디렉 토리 아래 의 test 디렉 토리 에 있 는 모든 파일 을 new . jar 로 묶 어 준다 . 
 예 ) jar cvf new . jar - C / test . 
 : 위 의 것 이랑 비슷 하 지만 . .. test 디렉 토리 뿐 아니 라 현 디렉 토리 에 있 는 파일 도 new . jar 로 묶 어 준다 . 
 예 ) jar xf test . zip : x 옵션 은 아카이브 를 푼다는 의미 , f 는 아 시 죠 . ..? 
 예 ) jar ufv 0 new . jar test 
 : u 옵션 은 test 디렉 토리 밑 의 파일 들 을 new . jar 에 추가 한다는 의미 . ..( test 디렉 토리 에 파일 이 
 있 어야 겠 죠 . .?) 
 : 0 옵션 은 압축 하 지 말 고 추가 하 라는 의미 ( 클래스 파일 의 경우 는 이 옵션 을 써 줘야 함 ) 
 : f 와 v 는 아 시 겠 죠 . ..? 
 하나 의 자바 응용 프로그램 을 실행 할 때 수십 개 의 클래스 파일 이 디렉 토리 내 에 존재 해야 하 는 경우 가 
 응용 프로그램 에서 jar 파일 을 이용 하 게 되 면 jar 파일 을 받 아서 풀 어 주 고 실행 시켜 주 면 되 지요 . 
 하 지만 jar 압축 시 에 추가 적 인 정보 를 지정 하 는 manifest file 의 설정 으로 파일 을 풀 지 않 고 jar 파일 의 
 main ( ) 메소드 를 찾 아 프로그램 을 실행 ( java - jar 옵션 을 통해 ) 시켜 줄 수 있 는 설정 을 할 수 있 습니다 . 
 Manifest . mf 파일 은 jar 로 파일 을 압축 하 는 경우 생성 되 는 파일 로 META - INF 디렉 토리 하 에 생성 됩니다 . 
 이 파일 을 하나 받 아 다음 과 같이 파일 에 Main - Class 항목 을 추가 하 여 적 어 줍니다 . 
 * 파일 ( manifest . mf ) 내용 . . 
 ( main ( ) 메소드 는 Ness . class 에 있 는 경우 ) 
 Created - By : 1 . 3 . 1 ( Sun Microsystems Inc . ) 
 * jar 파일 로 클래스 묶 어 주 기 ( 현재 디렉 토리 의 모든 class 파일 과 image 디렉 토리 의 파일 들 을 
 묶 고 manifest . mf 파일 을 적용 시켜 
 ness . jar 파일 을 생성 합니다 . ) 
 jar - cfm ness . jar manifest . mf *. class image 
 * 실행 다음 과 같이 입력 하 면 자동 으로 압축 된 jar 클래스 파일 로부터 메인 클래스 를 읽 어 들 어 
 실행 하 게 된다 . 
 java - jar ness . jar 
 단 , 실행 시 에 image 디렉 토리 의 내용 은 별도 로 풀 어 주 어야 합니다 . 
 여러 개 의 class 파일 로 이뤄진 프로그램 을 jar 형식 의 파일 로 합쳐서 배포 할 수 있 다 . 하나 의 파일 로 관리 할 수 있 다는 장점 뿐 만 아니 라 , 압축 이 되 어서 용량 도 더 작 게 만들 수 있 는 장점 이 있 다 . 그리고 , 다음 에 설명 할 exe 파일 로 만들 어 배포 할 때 도 이 jar 파일 을 이용 하 면 편리 한 장점 을 얻 을 수 있 다 . 이 문서 에서 는 jar 파일 의 모든 옵션 을 설명 하 진 않 는다 . 기본 적 인 생 성 방법 과 jar 로 압축 된 파일 에서 실행 시키 기 위한 manifest 파일 생 성 및 추가 방법 에 대해서 설명 하 고자 한다 . 
 jar 파일 생성 하 기 
 jar 프로그램 의 기본 적 인 명령 순서 는 다음 과 같 다 . 
 jar < option > < target _ file > < src _ files > 
 jar 파일 을 생성 하 기 위한 option 은 c 이 다 . create 혹은 compress 의 의미 를 가지 고 있 을 것 이 라 생각 된다 . 그리고 압축 이 되 고 있 는 상황 을 볼 수 있 게 하 려면 v 라는 option 을 쓰 면 , 파일 의 압축 과정 을 볼 수 있 다 . 한 가지 더 볼 것 은 f option 이 다 . 이것 은 < target _ file > 이름 을 지정 할 수 있 도록 해 주 는 option 이 다 . < src _ files > 에는 파일 이름 이나 디렉 토리 이름 이 올 수 있 다 . 그럼 , JavaAmp 의 경우 를 예 를 들 어 살펴 보 자 . JavaAmp 는 myprojects . javaamp 패키지 에 포함 되 어 있 기 때문 에 디렉 토리 구성 이 상당히 복잡 하 다 . 그렇지만 , package 자체 를 jar 파일 로 생성 해 주 어야 하 기 때문 에 , myprojects 의 부모 디렉 토리 로 나와서 myprojects 디렉 토리 자체 를 jar 파일 로 생성 해 주 면 된다 . 즉 , 
 jar cvf JavaAmp . jar myprojects 
 라고 명령 을 주 면 된다 . 압축 과정 이 나타나 고 , 결과 로 JavaAmp . jar 가 생성 되 었 음 을 볼 수 있 을 것 이 다 . 
 manifest 파일 수정 하 기 
 jar 파일 이 생성 되 었 다 . 그런데 , 실행 은 어떻게 하나 ? jar 파일 로 프로그램 을 실행 하 기 위해서 java 인터프리터 에서 는 - jar 라는 옵션 을 제공 하 고 있 다 . 즉 , 다음 과 같 은 명령 을 주 면 된다 . 
 java - jar JavaAmp . jar 
 - jar 옵션 다음 에 는 실행 할 jar 파일 을 지정 하 면 된다 . 어라 ! 그런데 실행 이 되 지 않 네 ? 우리 는 main ( ) 을 포함 하 고 있 는 클래스 에 대한 정보 를 전혀 주 지 않 았 다 . 그래서 java 인터프리터 가 이 위치 를 찾 지 못해서 이러 한 결과 가 나타난다 . 그렇 다면 어떻게 해 줘야 할까 ? 이 장 에서 설명 하 고자 하 는 manifest 파일 이 라는 것 을 수정 해야 한다 . jar 파일 은 winzip 프로그램 에서 도 지원 하 므로 winzip 프로그램 을 이용 해서 내부 를 살펴보 자 . Manifest . mf 라는 파일 을 찾 을 수 있 다 . 이것 이 바로 manifest 파일 이 다 . 이 파일 을 꺼내 와서 내부 를 살펴보 자 . 두 줄 이 쓰여 있 는데 version 정보 만 들 어 있 다 . 여기 에 추가 로 main class 의 위치 를 지정 해 주 면 된다 . 즉 , 다음 한 줄 을 추가 하 자 . 
 Main - Class : myprojects . javaamp . JavaAmp 
 수정 한 manifest 파일 을 다시 jar 파일 내부 로 수정 해 줘야 하 는데 어떻게 하 면 될까 ? 기존 의 파일 을 update 할 경우 에 는 u 옵션 을 사용 한다 . 그리고 manifest 파일 을 변경 할 경우 에 는 m 옵션 을 쓴다 . 즉 , 다음 과 같 은 명령 으로 jar 파일 의 manifest 파일 을 update 할 수 있 다 . 
 jar umf Manifest . mf JavaAmp . jar 
 이제 다시 JavaAmp 를 실행 해 보 자 . 이제 프로그램 이 실행 되 는 것 을 확인 할 수 있 을 것 이 다 . 
 jar 파일 은 여기 에서 소개 한 기능 말 고 도 많 은 기능 을 포함 하 고 있 다 . jar 파일 로부터 추출 하 는 기능 , 압축 을 하 지 않 고 그대로 파일 을 합쳐 주 는 기능 등 이 있 는데 , 직접 확인 해 보 도록 하 자 . jar 프로그램 의 간단 한 option 은 파라 메터 를 넘기 지 않 고 그냥 jar 프로그램 만 실행 시키 면 확인 해 볼 수 있 다 . 자세 한 설명 은 이 곳 에서 확인 해 볼 수 있 다 . 
 jar cvfm 파 일명 . jar manifest . mf *. class 
 출처 : http : / / bluemank . home . uos . ac . kr / moony _ home / java / work / jar _ dist . htm 
 출처 : http : / / blog . naver . com / levin 01 / 100012023168 
 JAR , 실행 화 일 
 by 깡통 ~ 
 SWT / JFace ( 1 ) 
 APM / Profiler ( 1 ) 
 재미있 는 글 ( 3 ) 
 용어 ( 12 ) 
 솔루션 ( 2 ) 
 프로젝트 관리 ( 2 ) 
 건강 / 생활 ( 18 ) 
 맛집 / 여행지 ( 9 ) 
 Unix / Linux ( 16 ) 
 Network / Server ( 1 ) 
 프로그램 ( 0 ) 
 Tip & Tech ( 13 ) 
 쇼핑 ( 7 ) 
 심심풀이 ( 1 ) 
 보안 & 백신 ( 1 ) 
 유용 한 프로그램 ( 4 ) 
 영어 번역 프로그램 
 블랙 아이스 
 내조 의 여왕 10 회 
 트랜스포머 : 패자 의 역습 
 펜 타 시큐리티 
 jar 배포 
 십육진수 
 16 진수 
 안녕 하 세요 , 스트레이트 . . 
 http : / / www . turboclean . .. 
 오 땡큐 
 역시 컴퓨터 내용 은 어 . . 
 포스트 잘 봤 습니다 . .. 
 볼 만 한 영화 
 여름휴가 장소 추천 
 고급 Bash 스크립팅 가 . . 
 Shell 전달 날짜 구하 기 
 동물 이 주인공 인 영화 
 Контроллер c . . 
 please click info . inno . . 
 растения пр . . 
 Chinese Realtor Califo . . 
 한잔 만 
 은우 성장기 
 pasera 50 님 미니 홈피 
 [ java ] OKJSP 
 [ java ] JAVAJIGI 
 [ 미니 홈피 ] D . K . KIM ( SAP . . 
 [ 블로그 ] 이글루스 
 FLEX 정보 
 [ Network / Server ] 텅 날개 . . 
 은우 아빠 
 Total 424 , 982 
 깡통 ~' s Blog is powered by Daum / Designed by Tistory