cmd 콘솔에서 Java Package 를 직접 컴파일하고 실행할 때 어느 위치에서 해야하는지 정리해 보았다.
항상 Eclipse같은 IDE에서만 실행했더니, 막상 cmd에서 할 땐 많이 햇갈린다.
파일 위치 및 명령어 실행 위치 현황
D:\Java_EXE \
└Genealogy2 \ ←명령어 실행 위치
└data
└lib ← swt.jar 위치
└META-INF
└src \ ← 실행 파일 위치
실행 명령어
"C:\Program Files\Java\jdk1.5.0_14\bin\"java -classpath lib\swt.jar; src/ManageGenealogy
--------------------------------------------------------------------------------------------
cmd 콘솔에서 package를 컴파일하고 실행할 때.
d:\PackageTest\ ← 컴파일 및 명령어 실행위치
└data
└lib ← swt.jar 위치
└META-INF (folder)
└src ← 실행 파일 위치(package)
● META-INF 폴더는 root 폴더 바로 아래에 만든다.
( src 등 기타 위치에 생성하는 건 의미없다.
eclipse에서 export를 통해 jar를 만들 때 root 폴더가 아닌 곳에 만든 manifest.mf를 참조할 경우
eclipse가 root 폴더 아래 새로 만들기 때문에 실행 파일 설정이 정상적으로 이뤄지지 않는다. )
root\META-INF 밑에 MANIFEST.MF 만들어서 아래 내용 추가하고, Export 할 때 manifest.mf를 추가해 준다. (eclipse에서 작업해야 Resource is out of sync ~~~ 안 뜬다. 뜨면 한 번 열어서 읽어 준다.)
Class-Path: lib\swt.jar ← jar 파일 내부 폴더에 둔다.
그 외 참조할 class가 있으면 그 위치를 적어준다. 구분자는 ' '
이 예제의 경우, swt.jar 를 제외한 모든 class가 메인 클래스와 같은 src 하부에 있어서 추가없음.
Class-Path는 72자까지만 됨.
Class-Path는 외부 경로(local)만 가능함. Jar 내부나, Internet 등으로 접근하는 Jar는 참조할 수 없음.
(-> 내가 만든 jar 안에 내가 참조할 외부 jar를 넣고, Class-Path에 잡아주어도 참조하지 못한다.
참조하려면 1. 참조할 jar를 풀어서 내 jar 안에 넣고, sealed 처리하던가
2. 외부에 참조할 jar를 위치시키고 class-path에 경로를 잡아준다.
Main-Class: src.ManageGenealogy ← 실행 파일 경로 및 파일 명
jar 파일을 실행 가능하게 만든다.
실행 명령어 : java -jar Genealogy.jar
installFactory 활용해 보기.
installFactory : http://jhjang.egloos.com/2369910
환경변수 자동 추가(jre를 하나 설치 경로에 설치한 후 그걸 install 파일에 추가하고, 대신 환경변수 설정만 batch 파일로 만들어서 설치 전 실행 파일로 등록시키면 굳이 jre를 설치하지 않아도 되지 않을까?
(물론 시스템에 있는 jre를 쓰고 없으면 설치하게 하는 것도 좋지만, 자동 설치 테스트해보고 안되면 이렇게!!!)
- http://www.okjsp.pe.kr/seq/96625
-
http://moai.tistory.com/entry/%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98%EB%A5%BC-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%B6%94%EA%B0%80%ED%95%98%EC%9E%90