안드로이드2010.03.23 10:35

제목: 1. 개발 툴 (이클립스) 설치

 

내용

  1. 이클립스 내려받기
  2. JDK 설치하기

 

 

안드로이드 개발을 위해서 개발 툴을 설치합니다.

안드로이드 개발은 자바기반의 개발을 할 때 널리 사용되는 툴인 '이클립스'를 사용하여 진행 됩니다.

그리고, 자바 개발을 위해서 필요한 자바 개발 킷(JDK: Java Development Kit) 도 설치를 해야 합니다.

이 글에서, 위 두 가지 도구를 설치하는 방법을 설명 하겠습니다.

 

 

이클립스를 다운로드 받으러 가봅시다.

 

구글에서 'eclipse down' 이라고 검색을 합니다.

'베스트 웹문서' 에 이클립스 다운로드 링크가 나타납니다.

 

링크를 타고 들어가 보시면…

위 화면과 같이 다양한 버전의 이클립스를 다운로드 받을 수 있게 되어 있습니다.

 

그 중에서 두 번째 'Eclipse IDE for Java Developers (92MB)' 를 선택합니다.

다운로드 할 수 있는 서버들의 링크가 나타납니다. 녹색 화살표 옆의

[Korea, Republic Of] Amazon AWS(http) 를 클릭하시면

압축된 파일을 다운로드 받게 됩니다.

 

다운로드 받은 파일의 압축을 풀어내면 아래처럼 나타납니다.

저는 C:\eclipse 에 압축을 풀었습니다.

 

이제 개발을 위한 툴의 설치는 완료되었습니다.

 

이번에는 실제 개발을 위해 필요한 JDK를 설치해 봅시다.

마찬가지로 구글에서 검색을 합니다.

검색 키워드는 jdk download 입니다.

검색 페이지에서 'Download JDK' 를 클릭합니다.

 

지금 글을 작성하는 시점에서 JDK 는 버전 6 이고, 18번째 업데이트 버전 이네요.

 

왼편의 빨간 다운로드 버튼을 클릭합니다.

화면처럼 로그인 창이 나타나는데, 굳이 가입하고 로그인 하실 필요 없습니다.

맨 아래 "Skip this Step" 을 클릭합니다.

그러면, 페이지가 넘어가면서 다운로드가 시작 됩니다.

이 파일을 실행을 눌러서 다운로드 후 실행 시킵니다.

 

이제, 자바 개발 환경을 위한 JDK 설치가 시작 됩니다.

흔히 접하실 수 있는 약관을 수락 하시고..

 

설치할 내용 및 설치 경로 선택 à 기본으로 두고 다음으로 넘어갑니다.

 

잠시 기다리면 설치가 완료되어 설치 프로그램은 종료되면서

웹 페이지를 하나 열어 줍니다.

계정을 만들면 어쩌구 저쩌구 한다고 합니다.. 만.

그냥 페이지를 닫습니다. (훗)

 

이제, 이클립스가 설치된 곳에 가셔서

 

Eclipse 를 실행 합니다.

 

이 화면이 나타나고, 잠시 뒤

 

이런 대화창이 나타납니다.

 

이클립스를 사용하면서 작업한 내용들 (프로젝트들) 이 기본적으로 저장될 위치를 묻는 창입니다.

특별한 이유가 없으면 OK를 눌러서 자동으로 적어준 경로를 workspace (작업 공간이죠) 로 사용 시면 됩니다.
(저는 c:\workspace 를 선택 했습니다.)
그리고, 다음에도 이클립스가 실행 될 때마다 작업공간을 물어보는데,
아래의 체크박스를 체크하시면 현재 경로를 기본 작업 경로로 인식하고 다음부터 묻지 않습니다.  

이런 화면이 나타났다면,

자바 개발을 위한 환경을 성공적으로 구축 하신 겁니다.

또, 안드로이드 개발을 위한 첫 관문을 통과 하신 겁니다. ^^;

 

다음 글에서 본격적으로, 안드로이드 개발을 위한 준비를 설명 하겠습니다.

2010/03/24 - [안드로이드] - 2. 안드로이드 SDK 설치


Posted by Dr.Kein

댓글을 달아 주세요

  1. 꺄오~ 이걸 하나하나 캡쳐해서 정리하시다니!!
    대단한 인내심이세효~~!!
    저좀 도와쥬세효..ㅠㅠ

    2010.03.23 22:48 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 한참 전부터 포스팅 할까말까 하다가
      져니님한테 필 받아서 (또 몇일전 윈도를 새로 밀어서 다시 개발 환경 구축하면서..) 슬슬 개발환경 구축하는 와중에 워드에서 작성했습니다. ㅋㅋㅋ

      근데, 뭘 도와드릴까요~? ^^

      2010.03.24 14:26 신고 [ ADDR : EDIT/ DEL ]
  2. Cavatina

    알기 쉽게 잘 정리해 주셨네요. 감사합니다.

    2010.04.16 09:30 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 따라하기 쉽게 정리해주셨어요 감사합니다. ㅋㅋ

    2010.04.19 09:35 신고 [ ADDR : EDIT/ DEL : REPLY ]
  4. innosoulx

    이제막 시작해 보려고 하는 사람입니다. 잘 정리해 주셨네요.
    감사합니다^^

    2010.04.22 11:09 신고 [ ADDR : EDIT/ DEL : REPLY ]
  5. 정말 말 그대로 그대~로 딸아 했더니 됐네요 ^^
    좋은글 감사합니다~

    2010.05.18 01:10 신고 [ ADDR : EDIT/ DEL : REPLY ]
  6. 아루

    개발에 관심 가지고 찾았는데 여기서 좋은 정보 얻어갑니다. 감사합니다. ^^

    2010.05.20 09:16 신고 [ ADDR : EDIT/ DEL : REPLY ]
  7. Q

    JDK 다운로드가 안되네요
    skip 같은건 없고 그냥 닥치고 로그인밖에 안나오네요..ㅠ

    2010.08.03 19:55 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u21-oth-JPR@CDS-CDS_Developer

      jdk 다운로드 페이지가 수시로 바뀌네요. 위 링크가 실제 다운로드 직전 페이지 이고, 여기 보시면 플랫폼 선택(윈도우) 만 하시고 아래의 continue 버튼 누르시면 곧 다운로드 링크가 나타납니다.

      2010.08.05 10:00 신고 [ ADDR : EDIT/ DEL ]
  8. City boy

    대단하십니당~ 퍼가도되죵?

    2010.09.14 12:48 신고 [ ADDR : EDIT/ DEL : REPLY ]
  9. OMG

    대단하시군요;;;
    정말 많은 도움 되었습니다

    2010.09.26 06:58 신고 [ ADDR : EDIT/ DEL : REPLY ]
  10. 많은정보 감사합니다. 정말 많이 배우고 갑니다. 덕분에 공부하는데 많은 도움되네요~
    정말 뭐라 말씀드려야할지... ㅎㅎㅎ 정말 감사합니다.

    2011.01.03 09:27 신고 [ ADDR : EDIT/ DEL : REPLY ]

Windows Mobile2009.05.12 09:55

http://innovator.samsungmobile.com/

삼성에서 운영중인 삼성폰 개발자 페이지 입니다.
삼성에서 만든 폰을 이용하여 프로그램 개발을 할 때 참고하기 위해서 만들어 놓은 페이지 인것 같으며, 
심비안, 윈도 모바일, 자바 기반의 삼성 폰에서 사용할 수 있는 SDK를 제공 합니다.
옴니아등 삼성에서 새로이 내놓고 있는 삼성폰에 프로그램을 개발할 때 유용하게 사용될 수 있습니다.

즉, '옴니아 개발을 위한 정확한 내용을 구하기 힘든 실정이니, 이곳의 정보를 참고 하십사' 하는 취지의 글입니다.

한 예로... 
요즘 스마트폰 관련 세미나에서 옴니아를 발표해 주시는 삼성전자의 모 책임연구원님께 
옴니아의 '모션센서' 에 대해서 질문을 했으나 실제와는 다른 답변을 해주신 적이 있습니다.


<필자의 질문내용>
1.     모션센서

모션센서는 설명자료들을 살펴보면 3축의 기울어짐을 각도로 출력하는 기능을 가진 것 같습니다. 궁금한 점은, 폰의 자세(기울어짐, 회전등)의 변화 없이 한 방향으로 밀었을 때 

예를들어 자세는 그대로 유지한 채로, 오른쪽으로 갑자기 밀었을 때 이 것을 감지할 수 있는지 궁금합니다.

, 가속도 센서의 기능이 있는 것인지 궁금합니다.\



<책임연구원님의 답변 내용>

> T옴니아에는 3축 모션센서가 들어가 있어서 자세를 유지한 채로 밀었을 경우 감지는 안됩니다.


하지만, 이 글에서 소개하는 innovator 페이지에서 찾은 SDK를 설치하고 가속도 센서 API를 읽어오는 프로그램을 만들어서 테스트 해보니, 3축 방향에 대한 가속도를 알 수 있었습니다.

실제와는 다른 답변을 해 주신 것이죠..


그러니.. 다시한번 말하지만..
이 글을 쓴 취지는.. 누구 (또는 어떤 기업을) 모함(비방)하려는 것이 아니라, 
국내의 개발자들에게 제공되는 정확한 정보가 부족하니..  개발자 자신이 열심히 찾아서 개발을 해야 한다는 내용이고, 
도움되는 싸이트가 있으니 참고하시라는 내용입니다 ^^ㅋ

Posted by Dr.Kein

댓글을 달아 주세요

  1. 마루아빠

    3축 모션센서라고 했으면서 G 센싱이 안된다는 것은 무슨 헛소리인지 모르겠군요...

    모션을 탐지하려면 당연하게도 가속도(G)를 탐지해야 하는 것인데...

    물론 지자기 센서가 있다고 했다면 가속도 탐지가 안되는게 당연합니다만.. 3축 모션 센서라고 해놓고선...

    정말 삼성 모바일 이노베이터 담당 직원인지 의심이 되는군요...

    게다가 책임연구원이면 과장급이고.. 협력 업체 CEO나 CTO급인데... 너무 무성의한 것 같네요..

    2009.06.01 22:49 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 앗.. 마루아빠님 여러모로 도움도 주시고.. 감사합니다 ^^;

      하드웨어개발자 따로, 소프트웨어 개발 따로, 포팅따로, 소개발표 따로, 다들 따로따로라서 세세한 것까지는 다 모르는 것이려니.. 하고 있습니다.

      결국, 목마르 사람이 우물 파야죠 ㅎㅎ

      2009.06.03 09:17 신고 [ ADDR : EDIT/ DEL ]
  2. 신사 이봐요, 거기에만 귀하의 블로그에 발견과 함께 정보의 숫자를 추구하는 월드 와이드 웹 평가로 합의했다. 우리는 당신이 blogsite에 대해 가지고있는 정보의 경외감에 있습니다. 아이디어는 왜 주제가보고 정확하게하는 방법을 보여줍니다. 이 기사를 예약 - 표시 더 얻으려면 다시 시작. 누구든지, 내 친구, 좋은 OLE '!

    2011.08.16 15:53 신고 [ ADDR : EDIT/ DEL : REPLY ]

하루하루2008.12.22 22:26

상황인지 미들웨어를 개발하다 보니..
성능면에서 등록 가능한 룰의 갯수를 측정해 본적이 있다.
그런데, 약 8만개 정도의 룰을 등록하니 OutOfMemory 에러가 발생..
일단 jvm 에서 -Xmx1024로 메모리를 늘려 잡아서 10만개 까지 룰 등록을 하긴 했는데..
원인을 알아야 해결을 할 수 있을것 같다는 생각이 들어서 관련 자료를 찾아 봤다.

자...
자바가 사용하는 메모리의 종류엔 뭐가 있을까...
얼핏 떠오르는게 힙 메모리 밖에 없다..  (근데, Heap 메모리는 뭐지? )

일단 여기저기에서 찾아낸 자바와 관련된 메모리 정보를 정리해 보자.
일단 자바가 사용하는 메모리의 종류를 알아보고
메모리 관리 방법(Garbage collection 방법)을 파악한 뒤
내 application 에 맞는 최적화 방법을 찾아내는 방법으로 메모리 문제에 접근하는게 순서 인것 같다.

(자바의 garbage collection 관련 링크 : http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html )

1. 자바 VM은 힙을 세개의 영역으로 나누어 사용한다.
  1) New/Young 영역 : 새로 생성된 객체를 저장
  2) Old 영역 : 만들어진지 오래된 객체를 저장
  3) Permanent 영역 : JVM클래스와 메서드 객체를 저장

자바가 사용하는 메모리 구조


여기서 New 영역은 다시  
 a) Eden : 모든 새로 만들어진 객체를 저장
 b) Survivor Space 1, Survivor Space 2 : Old 영역으로 넘어가기 전 객체들이 저장되는 공간
으로 구분된다.

2. Garbage Collector
자바 언어의 중요한 특징중 하나.
전통적인 언어의 경우 메모리를 사용한 뒤에는 일일이 메모리를 수거해 주어야 했다.
그러나, 자바 언어 에서는 GC기술을 사용하여 개발자로 하여금 메모리 관리에서 자유롭게 했다.

자바의 GC는 New/Young 영역과 Old 영역에 대해서만 GC를 수행한다. 
(Permanent 영역은 code가 올라가는 부분이기 때문에 GC가 필요없다.)

1) Minor GC
New 영역의 GC를 Minor GC라고 부른다. New 영역은 Eden과 Survivor라는 두 영역으로 구분된다.
Eden 영역은 자바 객체가 생성 되자 마자 저장이 되는 곳이다.
이곳의 객체가 Minor GC가 발생할 때 Survivor 영역으로 이동된다.

Survivor 영역은 Survivor1 과 Survivor2로 나뉘어 지는데, Minor GC가 발생하면 Eden과 Survivor1에 살아있는 객체가 Survivor2로 이동되고, Eden 영역과 Survivor1 영역에 남아있는(죽어있는) 객체는 clear된다.
결과적으로, 현재 살아있는 객체들만 Survivor2에 남아있게 된다.
다음번 Minor GC가 발생되면 같은 원리로, Eden과 Survivor2의 살아있는 객체가 Survivor1으로 이동되고, 두 영역은 Clear 된다.
이와 같은 방법으로 반복되면서 메모리를 수거한다. 이런 방식의 GC알고리즘을 Copy & Scavenge라고 한다. 속도가 빠르며 작은 크기의 메모리를 collecting 하는데 효과적이다.
Minor GC 과정중 오래된 객체는 Old 영역으로 복사된다. 
(Kein:그런데 얼마나 지나야 '오래된' 객체인 것인지는 명확히 모르겠네요)

새로 생성된 객체가 Eden 영역에 있다가 Minor GC가 일어난다. 살아있는 객체(파란색)가 SS1으로 옮겨지고 죽은객체(빨간색)는 그대로 남겨진다. 이후 Eden과 SS2를 clear 한다.


Eden에 새로 생성된 객체와 SS1에 있는 살아있는 객체를 SS2로 옮기고, Eden과 SS1 을 clear 한다.


생성된지 오래된 객체를 Old 영역으로 이동한다.



2) Full GC
Old 영역의 GC를 Full GC라 한다. Mark & Compact 알고리즘을 이용하는데, 전체 객체들의 reference를 따라가면서 연결이 끊긴 객체를 marking 한다. 이 작업이 끝나면 사용되지 않는 객체가 모두 mark 되고, 이 객체들을 삭제한다.
실제로는 삭제가 아니라, mark 된 객체로 생기는 부분을 unmark된, 즉 사용중인 객체로 메꾸는 방법이다.

Full GC는 속도가 매우 느리며, Full GC가 일어나는 도중에 순간적으로 java application이 멈춰버리기 때문에 Full GC가 일어나는 정도와 Full GC에 소요되는 시간은 application의 성능과 안정성에 매우 큰 영향을 미치게 된다.

Full GC 동작 순서


3. Garbage Collection이 중요한 이유
Minor GC는 보통 0.5초 이내에 끝나기 때문에 큰 문제가 되지 않는다. 하지만, Full GC의 경우 보통 수 초가 소요되고, GC동안 Application이 멈추기 때문에 문제가 될 수 있다. 5초 동안 서버가 멈춘다면, 멈춰있는 동안 사용자의 request는 쇄도하게 되고, queue에 저장되었다가 요청이 한꺼번에 들어오게되면 여러 장애를 발생할 수 있게 된다.
원할한 서비스를 위해서 GC를 어떻게 일어나게 하느냐가 시스템의 안정성과 성능에 변수로 작용하게 된다.


4. Garbage Collection 알고리즘들
1) Default Collector
위에 설명한 전통적인 GC방법으로 Minor GC에 Scavenge를, Full GC에 Mark & Compact를 사용하는 방법이다.

2) Parallel GC
JDK 1.3까지는 하나의 thread 에서만 GC가 수행되었다. JDK 1.4 부터 지원되는 parallel gc 는 minor gc를 동시에 여러개의 thread 를 이용해서 수행하는 방법으로 하나의 thread 에서 gc를 수행하는 것보다 빠른 gc를 수행한다.


하지만, parallel gc가 언제나 유익한 것은 아니다. 1 CPU에서는 오히려 parallel gc 가 느리다. multi thread에 대한 지원이나 계산등을 위해서 4CPU의 256M 정도의 메모리를 보유한 시스템에서 유용하게 사용된다.
parallel gc 는 두가지 옵션을 제공하는데, Low-Pause 방식과 Throughput 방식이다.
solaris 기준으로 Low-pause 방식은 ?XX:+UseParNewGC 옵션을 사용한다. Old GC를 수행할 때 Application 이 멈추는 현상을 최소화 하는데 역점을 두었다.
Throughput 방식은 ?XX:+UseParallelGC 옵션을 사용하며, Old 영역을 GC할때는 기본 옵션을 사용하며 Minor GC가 발생했을 때 최대한 빨리 수행되도록 throughput에 역점을 둔 방식이다.

3) Concurrent GC
Full GC를 하는 동안 시간이 길고, Application이 순간적으로 멈추는 현상이 발생하는 단점을 보완하기 위해서, Full GC에 의해 Application이 멈추는 현상을 최소화 하기 위한 방법이다.
Full GC에 소요되는 작업을 Application을 멈추고 하는것이 아니라, 일부는 Application을 수행하고, Application이 멈추었을때 최소한의 작업만을 GC에 할당하는 방법으로 Application이 멈추는 시간을 최소화 한다.
Application이 수행중 일 때 (붉은라인) Full GC를 위한 작업을 수행한다. Application이 멈춘 시간동안에는 일부분의 작업을 수행하기 때문에 기존 Default 방법보다 멈추는 시간이 현저하게 줄어든다.
solaris JVM 에서는 -XX:+UseConcMarkSweepGC 옵션을 사용한다.

4) Incremental GC (Train GC)
Incremental GC 또는 Train GC 라고 불리우는 방법은 JDK 1.3 부터 지원된 방법이다. 의도 자체는 Full GC 동안 Application이 멈추는 시간을 최소화 하는데 목적이 있다.
Minor GC가 일어날 때 마다 Old 영역을 조금씩 GC를 해서, Full GC가 발생하는 횟수나 시간을 줄이는 방법이다.
그림에서 보듯, 왼쪽의 Default GC Full GC가 일어난 후에나 Old 영역이 Clear된다. 그러나, 오른쪽의 Incremental GC를 보면 Minor GC가 일어난후에, Old 영역이 일부 Collect된것을 알 수 있다.
Incremental GC
를 사용하는 방법은 JVM 옵션에 ?Xinc 옵션을 사용하면 된다
.
Incremental GC
는 많은 자원을 소모하고, Minor GC를 자주일으키며Incremental GC를 사용한다고 Full GC가 없어지거나 그 횟수가 획기적으로 줄어드는 것은 아니다. 오히려 느려지는 경우가 많다.

5. GC 로그 수집 및 분석 방법
이제 적군에 대해 알았으니 나 자신을 파악할 차례다.
내 Application의 gc 동태를 파악하기 위해 java 실행 옵션에 -verbose:gc 옵션을 주면 gc 로그를 출력할 수 있다.

garbage collection 로그

로그중 GC 는 Minor GC 이고, Full GC는 Full GC를 나타낸다.
그 뒤의 숫자는 GC수행 전 heap 메모리 사용량 이다. (New + Old + Perm 영역)
그뒤 -> 이후의 숫자는 GC 수행 후 heap 메모리 사용량을 나타낸다.
Minor GC 가 수행된 뒤에는 Eden 과 Survivor 영역의 GC가 수행된 것이며, GC이후 heap 사용량은 Old영역의 용량과 유사하다. 괄호 안의 Total Heap Size 는 현재 jvm 이 사용하는 Heap memory의 양이다. 이 크기는 java 실행 옵션의 -Xms -Xmx 옵션으로 설정이 가능한데, 예를 들어 -Xms512 -Xmx1024로 해 놓으면 jvm는 메모리 사용량에 따라서 512~1024m 사이에서 적절하게 메모리 사용량을 늘였다 줄였다 하며 동작한다.
그 다음값은 gc에 소요된 시간이다.

위의 로그를 보면, Minor GC가 일어날 때 마다 약 20,000Kbytes 정도의 collection이 일어난다. Minor GC는 Eden과 survivor 영역 하나를 gc 하는 것이기 때문에  New 영역을 20,000Kbyte 정도로 생각할 수 있다. 
Full GC 때를 보면 약 44,000Kbytes 에서 1,749Kbytes 로 줄어든 것을 볼 수 있다. Old 영역에 큰 데이터가 많지 않은 경우이다.
Data를 많이 사용하는 Application의 경우 전체 Heap 이 512M 라 할 때, Full GC 후에도 480M 정도로 유지되는 경우가 있다. 이런 경우에는 실제로 Application이 메모리를 많이 사용하는 경우라고 판단할 수 있기 때문에, 전체 Heap 메모리를 늘려주면 효과적이다.

6. 결론
gc 로그를 분석하여 OutOfMemory가 발생하는 이유를 추적할 수 있다.
위의 설명처럼 Full GC 이후 Heap 메모리가 부족한 경우 전체 heap 을 조정하면 되고
Minor gc 도중 New 또는 survivor의 영역에 부족하여 에러가 발생하는 경우
new 또는 survivor의 영역을 확장하여 문제를 해결할 수 있다.

그럼 이제
내 어플리케이션의 gc 로그를 통해서 어떤 방법이 좋은 것인지 분석해 봐야 겠다.
Posted by Dr.Kein

댓글을 달아 주세요

  1. 완젼 초울트라압박 전문자료구나..ㅎㅎ
    내꺼 블로그도 메인페이지 하나 이쁘게 좀 만들어 달라니까..
    ^^;;;

    2008.12.23 18:09 신고 [ ADDR : EDIT/ DEL : REPLY ]

컴퓨터 관련 tip??2008.12.04 14:53

자바 업데이트 후 (update 11)
시리얼 포트로 센서값을 가져오는 프로젝트가 갑자기 동작하지 않게 되었다.

디버그로 살펴보니, com port id 를 얻어오는 부분에서 null 이 리턴되고 있었던 것.

자바 버젼이 바뀌면서 3rd party 에서 제공하는 comm.jar 와 호환이 안되는 문제인줄 알고
다시 자바 update 7 을 다운 받아서 재시도.

역시 안됨.

알고보니 윈도 에서는 comm.jar 만 가지고는 시리얼을 컨트롤 할 수 없었던 것이다.
처음부터, comm.jar 외에도 win32com.dll 와  javax.comm.properties 파일을 같이 java 폴더에 넣어 줘야 했던 것이고,

업데이트 되면서 폴더가 새로 생겼거나, 이전의 폴더가 삭제되고 다시 설치되면서 문제가 발생했던 것이다.


더구나,

comm.jar 최신 버젼 부터는 윈도용 패키지를 배포하지 않고 있었다.
rxtx.org 에서 윈도용 관련된것을 따로 다운 받으라고 하고 있었는데, 그렇게 하기는 싫고..

구글에서 검색하여 윈도용 파일을 찾았다.


압축을 풀면 나오는 파일중

comm.jar 는 이클립스에서 라이브러리로 지정해 주기만 하면 되고, (그래서, 이놈만 있으면 되는줄 알고 삽질을 -_-;)
win32com.dll 파일은 jre\bin 폴더에
javax.comm.properties 파일은 jre\lib 폴더에 복사하여 사용한다.

근데..
jdk 안에도 jre 가 동일하게 또 있어서..
걍 jre 에도 복사하고, jdk안의 jre 쪽에도 다 복사해 버렸다.
(얘낸 왤케 많이 생기는 건지...)
Posted by Dr.Kein

댓글을 달아 주세요

  1. ㅠㅠ

    감사합니다 이것땜에 얼마나 삽질을 했던지 ㅠㅠ

    2009.11.27 17:25 신고 [ ADDR : EDIT/ DEL : REPLY ]