19 10 2014
명령줄에서 외부 .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
웹사이트에 SSL 보안 적용하기 3. 관련 사이트 허세력 상승
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
공부좀 더해라