인터넷에서 JAVA 프로그래밍에 대한 예제를 찾아서 막상 컴파일 해 보면 안되는 경우가 허다 할 것이다.
그 요인은 전체적으로 두 가지 요인으로 볼 수 있는데
하나는 소스 구성이 이전 버전으로 구성 되어 있는 것이며
또 하나는 파일의 인코딩이 다르기 때문이다.
먼저 인코딩을 설명 한다면 JAVAC(JAVA 컴파일러)는 기본적으로 UTF-8을 우선적으로 지원하기 때문이다.
만일, 해당 소스 파일이 'EUC-KR'로 되어 있다면 JAVAC가 인식하지 못하면서 컴파일에 실패 한다.
먼저 만약 소스 코드 구성은 최신 버전에 맞지만 인코딩만 다를 경우를 컴파일을 시도해 보자.
< 해당 'a.java' 소스 파일이 'EUC-KR'인코딩일 경우 >
$ JAVAC -encoding euc-kr a.java
(euc-kr : 인코딩 지정)
< 컴파일에 성공했는지 확인해 본다. >
$ ls
a.java a.class
< 이번에는 이전 버전의 소스코드와 인코딩이 다른 경우 두가지를 모두 포함하고 있는 경우를 해결해 볼 것이다. >
그러는 이유는 이 방법에는 순서가 있기 때문이다.
물론 프로그래머 스스로가 소스를 수정하여 해결할수도 있겠지만 javac는 이전 버전의 소스 형식도 잡아주는 기능이 있기 때문에 그것을 최대한 활용 하는 것이 훨씬 더 수월 할 것이다.
그리고 이번에는 본 필자가 소스 파일을 제공해 줄 것이다.
a.java
< 위의 파일을 직접 다운 받거나 본 블로그에서 제공하는 예제 파일을 터미널에서 wget을 활용하여 원하는 폴더에 다운로드 한다. >
$ wget http://cosmosproject2015.tistory.com/attachment/cfile21.uf@246C454257AD51422E2D22.java
// 받은 파일을 a.java로 변경한다.
< 받은 파일을 a.java로 변경한다. >
$ mv cfile21.uf@246C454257AD51422E2D22.java a.java
< 제대로 변경 되었는지 확인해 본다. >
$ ls
a.java
* a.java 가 있다면 다운로드와 변경에 성공한 것이다.
< 먼저 해당 java 파일에 대한 타겟 버전을 설정한다. >
$ javac -target 1.4 a.java
(타겟 옵션 : 버전 1.4)
javac: target release 1.4 conflicts with default source release 1.9
* 현재 버전 1.9에 의해 1.4 문제를 타겟 배포 했다는 문구가 출력 된다.
< 이제 인코딩과 컴파일을 같이 실행한다. > >>
$ javac -encoding euc-kr a.java
< 실행해 본다. > >
$ java a
Hello World
성공했습니다!
* 위와 같이 나온다면 성공한 것이다.
도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.
'프로그래밍 > Java' 카테고리의 다른 글
JAVA 프로그래밍 이론 - 상속(Inheritance) 의 개념에 대한 이해 (0) | 2023.02.26 |
---|---|
리눅스에서 자바(java) 컴파일 및 실행 하기 (예제 1 포함) (0) | 2020.06.16 |
리눅스에서 자바 프로그래밍 시작하기 (1) java 확인 및 설치 하기 (2) | 2018.09.14 |
[리눅스 JAVA] 구버전 소스(~1.4~) 컴파일 하는 방법 &인코딩 문제 해결 방법 - (update 0.1) (0) | 2017.09.01 |
[리눅스 JAVA 프로그래밍] 변수와 상수를 지정하고 문자와 함께 같이 출력하기. (0) | 2016.08.09 |