티스토리 뷰

Java

Java Command Line Tools - Interpreter 편

꿈이 있는 자유 2009. 1. 21. 23:13

자바는 원시 소스를 컴파일해서 bytecode 로 만든다음, JVM 을 통해 bytecode 를 machine code 로 변경해서 실행하게 된다. bytecode, 기계어도 인간의 언어도 아닌 중간 언어, 를 interpretation 하기 위해 java.exe 명령어를 사용하게 된다.

참고 사이트 : http://pllab.kw.ac.kr/j2seAPIs/tooldocs/windows/java.html
Linux/Unix : docs/technotes/tools/solaris/java.html
Windows : docs\technotes\tools\windows\java.html

java [-options] class [arguments...]
이것은 일반적으로 Java 클래스를 인터프리테이션하기 위해 실행하는 명령어이다. 또 있다.

java [-options] -jar jarfile [arguments...]
이것은 JAR 파일을 실행하기 위한 사용법이다.

java HelloWorld

이건, 자바를 첫 시간 수업들은 사람은 다 안다. 뭐! 나를 무시하자는 건가? 하지만, 이게 가장 많이 사용하는, bytecode 화 돼있는 클래스를 머쉰 코드로 변경하라는 것 아닌가?  


이 명령을 통해 JRE 를 시작하고, HelloWorld 클래스를 로딩하며, 그리고 그 클래스의 main() 을 실행하게 된다.

java -cp .:./dir/Classes HelloWorld

컴파일 명령과 같이 -cp 는 곧 -classpath 이다. 실행시 CLASSPATH 를 검색하는데, 별도로 환경설정이 돼있던, 돼있지 않던 상관없이 -cp 뒤의 경로의 클래스를 호출하게 된다. 여기서 중요한 점은, 반드시 경로의 시작이다. Linux/Unix 의 path 구분자는 ':' 이기 때문에, 현재(.) 그리고 구분자(:)를 이어서 '.:' 이렇게 써야 한다. 반면, Windows 는 path 구분자가 ';' 이기 때문에, 현재(.) 그리고 구분자(;)를 이어서 '.;' 이렇게 써야 한다.

HelloWorld 클래스는 /dir/Classes 의 Test 클래스를 필요로 한다. 그래서 현재 경로의 HelloWorld.class와 /dir/Classes 의 Test.class 모두 필요한 거다. 두개의 경로를 다 이어줘야 성공적으로 실행된다.

java -ea HelloWorld

이 명령어는 Java 의 Assertion 가 가능하게 하는 옵션이다. -enableassertions 라고 해도 된다. 기본적으로 Java 는 assertion 옵션이 disable 이기 때문에 별도로 -ea 즉, 가능해야 assert 처리를 할 수 있다.

java -version

이 옵션은 Java Interpreter, JRE 그리고 Virtual Machine 의 버전을 출력하게 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함