마사키군의 다락방

끄적끄적할게 있을때 끄적거려 보관해두는 다락방

명령줄에서 외부 .jar 파일 포함해서 .java 컴파일하기

운영체제의 환경변수 등을 변경하지 않은 채로, 외부 .jar 파일을 포함해서 .java 파일을 컴파일 및 실행하기 위해서는 아래와 같이 한다.

컴파일시

javac -cp "<classpath>\external.jar" MyClass.java

실행시

java -cp "<classpath1>\external.jar;<classpath2>" MyClass

여기서 -cp 옵션은 물론 클래스 패스(Class Path)를 가리키며, .jar 파일이 있는 경로만 지정해서는 컴파일 및 실행이 모두 안되므로, 반드시 .jar 파일까지 모두 경로에 지정해줘야 한다.

여러개의 .jar 파일을 지정하기 위해서는 운영체제에 따라서 구분자가 다른데, 윈도우 운영체제에서는 세미콜론(;), 그 외의 운영체제에서는 콜론(:)으로 구분해서 지정한다.

예:

(윈도우 운영체제의 경우)

javac -cp "<classpath1>\external.jar;<classpath2>\tools.jar" MyClass.java

(그 외 운영체제의 경우)

javac -cp "<classpath1>/external.jar:<classpath2>/tools.jar" MyClass.java

.java 파일을 컴파일하려는 것이 아니라, 이미 컴파일된 클래스를 실행하려고 할때는 .jar 파일의 경로뿐만 아니라, 실행하려는 클래스 파일이 존재하는 경로도 지정해야 한다. 만약 컴파일된 .class 파일이 현재 디렉토리에 있더라도 현재 디렉토리라는 식으로 경로를 지정해줘야 한다. 이때는 딱히 경로에서 .class 까지 명시할 필요는 없다.

예:

java -cp "<classpath1>\external.jar;." MyClass

(단, 윈도우 운영체제에서 실행하는 것이 전제이며, MyClass 파일은 현재 디렉토리에 있다고 가정함)

…생각해보면 이클립스에서 환경변수를 지정해서 컴파일하고 실행하면 되는걸, 난 왜 이런 삽질을 하고 있는가 (…)

참고 URL: 스택오버플로우 – Java command line with external .jar

,

One thought on “명령줄에서 외부 .jar 파일 포함해서 .java 컴파일하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다