2011.11.13 18:55
[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파일을 복사하면, javacjava에서 옵션없이 컴파일하고 실행할 수 있다.

) jdkC:\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변수값을 나타내는 변수이다.

Posted by hyunny82

티스토리 툴바