인터넷에서 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
성공했습니다!


* 위와 같이 나온다면 성공한 것이다.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


런치패드(launchpad.net)에서 PASCAL GTK를 제대로 인식하지 못하고 내뱉어 낸다.


사실 이럴때 대부분의 다른 개발자들은 debian/prestinst 파일을 이용하여 GTK프로그램을 저장해 둔 FTP서버에서 받아와서 설치 하겠금 조정 하는 것이 대부분 이다.


그러한 방법도 나쁘지 않은 것이 런치패드 PPA의 다운로드 속도가 낮은 대역폭 이기 때문에 사용자 입장에서 소프트웨어를 빠르게 다운 받아 설치 할 수 있다는 장점도 있다. 왜냐하면 패키지에 직접 GTK가 들어가 있질 않으니 용량이 상당히 가벼워 지기 때문이다.


하지만 그렇다고 해서 GTK의 직접 탑재를 포기할 필요는 없다.


런치패드의 컴파일러 봇 모듈이 한 가지 건너뛰는 것은 바로 압축파일 안의 파일들은 컴파일 하려 하지 않는 다는 것이다.


물론 컴파일을 안 한다고 해서 검사를 안 하는 것은 아닐 것이다.


바로 그 점을 이용하여 GTK를 압축하여 패키징하여 탑재 하는 것이다.


다음은 debian/postinst를 활용 하여 압축을 해당 파일시스템 폴더에 압축을 풀도록 하는 것인데...


여기서 또 한가지 주의 할 점은 바로


tar -xvzf /경로/압축파일


로는 타임 스탬프만 나오고 정상적으로 풀리지 않는 다는 것이다.


이를 해결 하기 위해서는


cd /경로


tar -xvzf 파일


로서 해결 해야 한다.


물론 이와 같은 해결방안도 있지만 솔직히 서론에서 말한 제작자가 보유한 FTP에서의 설치가 가장 효율적일 것이다.


하지만 비용문제, 영구적문제, 보안 문제를 고려한다면 런치패드 PPA에 자체 탑재하여 업로드 하는 것이 필요하다면 활용해야 할 방법이다.




+ Recent posts