티스토리 뷰
java 커맨드라인 실행은 지극히 기본적인 것이다.
하지만 우리는 이클립스의 노예이기 때문에 커맨드라인에서 컴파일하고, 실행하는게 매우 낯설고 어렵다.
나도 어렴풋이 알기만 했었는데, 이번에 JFlex와 JCup을 이용하여 학교 컴파일러 텀프로젝트를 해보며 알게 되었고
알게 된 김에 정리하기로 했다.
일단 기본적으로 컴파일은 javac를 이용한다.
이렇게 실행하면 ~~~.class가 생성된다.
.class 파일이 생성되는 경로는 직접 지정할 수 있다.
컴파일 되어 생성된 .class 파일을 java를 이용해 실행한다.
이렇게 하면 컴파일된 .class 파일이 실행되게 된다.
여기서 주의할 점은 java명령어를 실행하는 위치이다.
프로젝트 환경에서 패키지 별로 폴더가 생성되고, Main 메소드가 있는 클래스가 어떤 패키지에 속해 있다면
그 위치에서 바로 실행할 수는 없고 프로젝트의 bin 파일의 root 디렉토리에서
다음과 같이 실행한다.
여기서 자바의 컴파일 구조를 생각해 볼 수 있는데,
자바의 장점이라 하면 플랫폼에 종속적이지 않다는 점을 들 수 있다.
일단 코드가 중간코드(바이트코드)로 컴파일 되고,
그 중간코드가 각각의 플랫폼에 종속적인 인터프리터에 의해 실행되게 된다.
즉 Hybrid compile 방식을 띄고 있다.
정리해보면,
javac는 컴파일러이고 소스를 받아 중간 코드(바이트코드)로 변환하며 모든 플랫폼에 동일하다.
그리고 java는 인터프리터이고 중간 코드를 받아 각 machine과 os에 의존적이므로 플랫폼마다 다른 구조를 띌 것이다.
하지만 우리는 이클립스의 노예이기 때문에 커맨드라인에서 컴파일하고, 실행하는게 매우 낯설고 어렵다.
나도 어렴풋이 알기만 했었는데, 이번에 JFlex와 JCup을 이용하여 학교 컴파일러 텀프로젝트를 해보며 알게 되었고
알게 된 김에 정리하기로 했다.
일단 기본적으로 컴파일은 javac를 이용한다.
>javac ~~~.java
이렇게 실행하면 ~~~.class가 생성된다.
.class 파일이 생성되는 경로는 직접 지정할 수 있다.
컴파일 되어 생성된 .class 파일을 java를 이용해 실행한다.
>java ~~~.class
이렇게 하면 컴파일된 .class 파일이 실행되게 된다.
여기서 주의할 점은 java명령어를 실행하는 위치이다.
프로젝트 환경에서 패키지 별로 폴더가 생성되고, Main 메소드가 있는 클래스가 어떤 패키지에 속해 있다면
그 위치에서 바로 실행할 수는 없고 프로젝트의 bin 파일의 root 디렉토리에서
다음과 같이 실행한다.
>java 패키지명.~~~.class
여기서 자바의 컴파일 구조를 생각해 볼 수 있는데,
자바의 장점이라 하면 플랫폼에 종속적이지 않다는 점을 들 수 있다.
일단 코드가 중간코드(바이트코드)로 컴파일 되고,
그 중간코드가 각각의 플랫폼에 종속적인 인터프리터에 의해 실행되게 된다.
즉 Hybrid compile 방식을 띄고 있다.
정리해보면,
javac는 컴파일러이고 소스를 받아 중간 코드(바이트코드)로 변환하며 모든 플랫폼에 동일하다.
그리고 java는 인터프리터이고 중간 코드를 받아 각 machine과 os에 의존적이므로 플랫폼마다 다른 구조를 띌 것이다.
'기타 > Java' 카테고리의 다른 글
[Java] 자바 Code Convention (0) | 2011.05.20 |
---|---|
[Java] 배열, 컬렉션 정렬 (0) | 2010.11.18 |
[Android/Java] 문자열 token으로 파싱하기(StringTokenizer) (0) | 2010.09.24 |
[Java/Android] No enclosing instance of type "..." is accessible. 해결법 (0) | 2010.08.27 |
[Java] 기본형/참조형 String으로 변환하기 (0) | 2010.07.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카타르 음주
- android
- reversing
- 개발
- linux
- Discrete Mathematics
- 카타르
- Reverse Engineering
- 데이터 사이언스
- statistical learning
- 리버싱
- Data Structure
- java
- Algorithms
- 통계학습
- 기계학습
- 리버스엔지니어링
- Machine Learning
- 자바
- Data Science
- 데이터 과학
- 대학원
- 자료구조
- 알고리즘
- 안드로이드
- 운영체제
- 리눅스
- 이산수학
- 머신러닝
- operating systems
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함