.Zip, .Cab, 및 .Jar 파일 만들기 : .Jar 만들기

 

지금까지 일반적으로 널리 사용되는 ZIP, CAB과 같은 압축 파일을 만들어 보았다. 지금부터는, 또 다른 압축 파일인 JAR 형식의 파일을 이용하여, 비교적 최신 버전의 넷스케이프 내비게이터나 핫자바(HotJava) 사용자들에게 애플릿을 전달하는 과정에 대해서 다루어보기로 한다.

JAR파일을 만드는 과정은, 대부분의 유닉스(UNIX) 개발자들에게 익숙한 TAR 파일을 만드는 과정과 매우 유사하다. 위에서 살펴본 바와 같이, CAB 파일의 경우 커맨드라인 명령 인터페이스만 가지는 유틸리티인 CABARC가 기존에 존재하지만, 불행하게도 JAR 파일의 경우 DOS 쉘의 커맨드라인 인터페이스 상에서 JDK1.1에 있는 JAR 프로그램을 사용하여 JAR 파일을 구성해야 할 필요가 있다.

일반적으로, JAR파일을 생성하는데 쓰이는 JAR유틸리티 프로그램은 JDK디렉토리(이전 장에서 사용했던 javac와 appletviewer가 들어있는 디렉토리)의 “Bin”디렉토리에 들어있다.

JAR는 다음과 같은 일반적인 형식을 따른다:

Command

Parameter Comments
T Jar의 내용을 나열하는데 쓰인다.
C Jar파일을 생성하는데 쓰인다.
X jar 파일로부터 하나나 그 이상의 파일들을 추출하는데 쓰인다.
V 화면에 자세한 에러메세지를 생성하여 출력한다.
F 저장파일의 이름을 지정하는데 쓰인다.
m 명시된 파일로부터 특정 정보를 포함시킬 때 사용된다.
O 자료저장을 위해서 사용되는 옵션으로, 압축을 하지않는다. 생성되는 파일은 CLASSPATH에 지정된 위치에 저장된다.
M 명시된 파일이 생성되지 않도록 한다.

Jar파일의 생성
JAR파일을 생성하기 위해서는 다음과 같은 기본적인 표현을 사용한다:

위의 예에서, “c”옵션은 새로운 JAR파일을 생성하는 것을 나타내고, “v”옵션은 JAR파일을 생성하는 과정에서 발생하는 에러에 관한 정보를 출력하도록 해준다. 마지막으로, “f”옵션은 생성될 JAR 파일의 이름이 따로 명시되어 있다는 것을 나타내어 JAR 프로그램으로 하여금 지정된 이름을 가지는 JAR 파일을 생성하도록 한다. CABARC와는 다르게, JAR는 자동적으로, 명시한 디렉토리에 들어있는 하위 파일들을 재귀적으로 JAR파일에 추가한다.

CABARC와 마찬가지로, JAR 프로그램도 생성되는 압축파일에 지나치게 많은 파일을 추가한다는 문제를 갖는다. 하지만, JAR는 CABARC와는 달리 압축파일에 추가될 파일들을 명시하는 제한장치를 가지고있지 않다. 따라서, 불필요한 파일들이 JAR파일에 추가되지 않도록 하기 위해서는 다음과 같이 지정해주어야 한다:

Jar파일의 파일목록 보기와 파일 압축풀기
JAR 파일에 들어있는 파일들의 목록을 일람하기 위해서는 “c”옵션 대신 “t”옵션을 사용하면 된다. 예를 들어, 아래의 명령은 이전 절에서 우리가 MyApplet.jar라는 파일에 추가한 파일들의 목록을 표시해준다:

비슷한 방법으로, “x”옵션을 사용해서 JAR 파일에 들어있는 모든 파일들을 쉽게 추출할 수 있다. 예를 들어, 위에서 만들었던 MyApplet.jar의 내용을 추출하기 위해서는 다음과 같이 하면 된다:

Jar 목록파일(Manifests)
생성한 JAR파일에 들어있는 파일들의 목록을 나타내는 파일은 사인이 이루어져야 하는데, 이에 대한 자세한 정보는 http://www.javasoft.com/products/jdk/1.1/docs/guide/jar/manifest.html에서 얻을 수 있다.

Jar파일의 배포

일단, JAR파일을 만들고 나면 파일을 웹 서버에 파일을 올려둔 후, <APPLET>태그의 ARCHIVE애 속성을 사용하여 브라우저로 하여금 JAR파일을 참조하도록 할 수 있다. 아래의 코드는 <APPLET>태그에서 JAR파일을 참조하는 것을 나타내고있다:

JAR파일을 참조할 때 아래와 같이 컴마(,)를 사용하여 여러 개의 JAR파일들의 이름을 구분하여 적어주면, 브라우저가 하나이상의 JAR 파일을 참조하도록 할 수 있다:

CAB, ZIP파일에서와 마찬가지로 JAR파일을 참조함에 있어서 해당 클래스 파일을 나중에 추가하더라도 CODE 속성을 미리 명시해 주어야 한다.

 

This entry was posted in Java/JSP, Util/Tools and tagged , . Bookmark the permalink.

댓글 남기기