[java 컴파일 및 실행]
1.Compile
javac -d classdirectory source_name.java
: source_name 클래스파일은 -d option에 지정된 classdirectory에 생성됩니다.
javac source_name.java
: source_name 클래스파일은 javac가 실행되는 디렉토리에 생성됩니다.
2.run
java source_name(class file)
: java는 classpath에 있는 class들중 sourcename.class가 있는지를
찾아 실행합니다. 이 때, classpath에 sourcename.class가 없다면
ClassNotFoundException이 발생합니다.
java -classpath classdirectory source_name(class file)
: java는 실행환경의 classpath 및 옵션에 있는 classdirectory를 찾아
source_name.class파일을 찾아 실행합니다.
3.exmaples
1>compile
c:\src\javac Hello.java
-> c:\src\Hello.class
2>run
c:\src\java Hello
-> Exception in thread "main" java.lang.NoClassDefFoundError: Hello
라는 Exception 발생.
이유는 Hello.class파일이 있는 c:\src가 classpath에 설정되어 있지
않기 때문입니다.
-> 실행방법
c:\src\java -classpath . Hello
java의 실행옵션중 classpath를 현재 디렉토리로 설정하면 classpath로
현재 디렉토리가 설정되므로 Hello.class파일을 찾아 실행 할 수 있습니다.
or
c:\src\set classpath=.;%classpath%
c:\src\java Hello
system의 환경변수로 classpath를 설정한 후 실행을 하면
Hello.class파일을 system의 classpath에서 찾아 실행 할 수 있습니다.
3. Package 사용법
1) package 묶기
1-1)컴파일
-d 옵션을 이용해서 패키지 이름으로 지정된 디렉토리를 생성하도록 한다.
javac –d . 파일명.java
1-2) jar 파일 만들기
jar cvf 묶을 파일명.jar 디렉토리의 형식으로 패키지를 jar파일로 묶을 수 있다.
예) c:\temp>jar cvf tv.jar com
(com디렉토리 밑의 파일들을 tv.jar라는 파일로 묶음)
참고: manifest.txt . default package 위치에 저장
Main-Class: 메인클래스명 (예> Main-Class: net.nodelib.SimpleWindow)
http://blog.naver.com/echris7/140012453284
2) package 다운 받아서 사용하기
2-1) javac의 –classpath 옵션이용
컴파일시 javac –classpath 패스명 소스명.java 로 컴파일한다.
예) c:\temp>javac –classpath tv.jar MyApp.java
(MyApp에서 import할 패키지가 tv.jar에 묶어있다.)
2-2) jre의 지정디렉토리에 복사
jdk가 설치된 디렉토리 밑의 jre\lib\ext 디렉토리에 jar파일을 복사하면, javac와 java에서 옵션없이 컴파일하고 실행할 수 있다.
예) jdk가 C:\j2sdk1.4.1_02>에 설치되어 있을 때 C:\j2sdk1.4.1_02\jre\lib\ext>에 복사하면 된다.
2-3)환경변수 이용
바탕화면-내컴퓨터-등록정보-고급-환경변수에서
System 변수에 classspath를 추가한다.
여기서 현재 디렉토리를 의미하는 ‘.;’을 앞에 추가하고 반드시 jar파일명까지 확장자를 포함하여 작성한다.
;c:\j2sdk1.4.1_04\bin;.;
‘;’문자는 다른 디렉토리와의 구분을 위한 것이다.
Command line 환경에서는 다음의 명령어로 대체할 수 있다.
path= c:\j2sdk1.4.1_04\bin; .;
이를 타이핑하거나 autoexec.bat와 같은 배치파일을 활용해서 설정할 수 있다.
만약 다른 path가 설정되어 있는 경우는 다음과 같은 명령으로 패스를 추가할 수 있다.
path= %path%; c:\j2sdk1.4.1_04\bin; .;
%path%는 현재의 path변수값을 나타내는 변수이다.