블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2324)
Unity3D (568)
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,344,773
Today198
Yesterday150
Statistics Graph

달력

« » 2019.12
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        

공지사항

태그목록

[링크] https://blog.naver.com/wisestone2007/221321329618

 

RAM 사용량 측정 - Android ‘dumpsys’ 도구를 이용한 모바일 앱 성능 테스트 (3)

ㅇ Android ‘dumpsys’ 도구를 이용한 모바일 앱 성능 테스트(1) ㅇ CPU(Mobile AP) 사용량 측정 -...

blog.naver.com

 

Posted by blueasa
TAG dumpsys

댓글을 달아 주세요

<블로그 원문은 이곳에서 확인하실 수 있으며 블로그 번역 리뷰는 양찬석(Google)님이 참여해 주셨습니다>게시자: Vlad Radu(Play 제품 관리자), Diana Wong(Android 제품 관리자)

64비트 CPU는 사용자에게 더 빠르고 풍부한 환경을 제공하며, 앱에 64비트 CPU 지원을 추가하면 동작 성능이 개선될 수 있습니다. 그 뿐만이 아니라 64비트 CPU를 지원하는 앱이 많아 질수록 64비트 전용 하드웨어가 시장에 좀 더 빨리 자리잡고, 이를 통해 전체 기술 생태계가 좀 더 빨리 발전할 수 있습니다.


개발자 여러분이 64비트 CPU 지원을 위해 충분한 시간이 필요하다는 점을 잘 알고 있습니다. 안드로이드는 5.0 Lollipop 버전에서 처음으로 64비트 CPU를 지원해왔고, 2017년에는 네이티브 코드를 사용하는 앱이 (32비트 버전 외에) 64비트 버전을 제공해야 한다는 점을 공식적으로 발표했습니다. 관련하여 2019년에 시작될 64비트 요구 사항에 관해 좀 더 세부적인 정보와 일정을 알려드리려고 합니다.

64비트 요구 사항: 개발자에게 의미하는 바

2019년 8월 1일부터:

  • 네이티브 코드를 포함하는 모든 새 앱과 앱 업데이트는 Google Play에 게시할 때 32비트 버전 외에 64비트 버전도 함께 제공되어야 합니다.
  • 기간 연장 대상: Google Play는 2021년 8월까지 Unity 5.6 또는 이전 버전을 사용하는 기존 게임에 대한 32비트 전용 업데이트를 계속 허용할 예정입니다.

 

2021년 8월 1일부터:

  • Google Play는 64비트 지원 기기에서 64비트 버전이 없는 앱에 대한 서비스를 중단할 예정이며, 이에 따라 해당 기기에서는 Play Store에서 이러한 앱을 사용할 수 없게 됩니다.
  • 여기에는 Unity 5.6 또는 이전 버전으로 만든 게임이 포함됩니다.

 

다음에 대해서는 이 요구 사항이 적용되지 않습니다.

  • 현재 64비트 코드를 지원하지 않는 폼 팩터인 Wear OS 또는 Android TV를 명시적 대상으로 하는 APK 또는 앱 번들
  • Android 9 Pie 이상을 실행하는 기기에 배포되지 않는 APK 또는 앱 번들

 


이러한 변화가 32비트 지원에 관한 정책 변경을 의미하는 것은 아닙니다. Play는 계속 32비트 CPU 기반 기기에 앱을 제공할 것입니다. 이 요구 사항이 의미하는 바는 32비트 네이티브 코드를 사용하는 앱은 반드시 64비트 버전도 추가로 포함해야 한다는 점 입니다.

64비트 요구 사항에 맞춰 앱 준비하기

대부분의 경우 64비트로 이전하는 과정은 간단할 것으로 예상됩니다. 많은 앱이 네이티브 코드가 아닌 코드(예: 자바 프로그래밍 언어 또는 Kotlin)로 작성되고, 이 경우 64비트 요구 사항을 만족시키기 위해 추가할 필요한 작업은 없습니다.


모든 개발자: 다음은 64비트 호환 버전이 되기 위해 수행해야 할 단계에 대한 개요 정보입니다. 이 과정을 좀 더 자세히 설명한 내용은 심층적인 정보를 다룬 문서를 참조하세요.


APK 또는 앱 번들에서 네이티브 코드를 살펴보세요. APK Analyzer를 사용하여 .so 파일을 확인해 볼 수 있습니다. 이런 파일이 직접 작성한 코드로 만들어졌는지 아니면 사용 중인 SDK 또는 라이브러리에 포함된 파일인지 확인하세요. APK에 .so 파일이 없으면 이미 64비트와 호환되는 것입니다.


64비트 아키텍처를 사용 설정하고 자체 코드를 재컴파일해 네이티브 코드(.so 파일)를 다시 빌드하세요. 자세한 내용은 문서를 참조하세요.

  • 필요한 경우 64비트 호환 버전으로 SDK와 라이브러리를 업그레이드하세요. SDK 또는 라이브러리 소유자에게 연락해 사용할 수 없는 SDK 또는 라이브러리가 있는지 알아보세요. 구글은 주요 라이브러리 개발사들과 함께 64비트 호환성에 관한 작업을 진행 중입니다.
  • 앱을 다시 빌드한 후 로컬에서 문제를 테스트하세요.
  • 철저한 테스트를 위해 테스트 트랙을 사용하여 테스터에게 롤아웃하세요.

 

게임 개발자: 가장 많이 사용되는 세 가지 엔진이 모두 현재 64비트를 지원합니다(2015 이후의 Unreal 및 Cocos2d, 2018 이후의 Unity). 구글은 게임 엔진 마이그레이션이 긴 리드 시간을 요하는 강도 높은 과정임을 잘 알고 있습니다.


Unity는 최근 버전 2017.4와 2018.2에서 64비트 지원을 제공하기 시작했습니다. 따라서, 5.6 또는 이전 버전을 사용한앱의 경우 2021년 8월까지 64비트 요구 사항 적용을 연장할 것입니다. Unity는 64비트 호환 버전으로 업그레이드하는 과정을 통해 개발자에게 도움을 줄 수 있는 가이드를 제공하고 있습니다.


SDK 및 라이브러리 소유자: 앱 개발자가 적응할 시간을 주기 위해 가급적 빨리 64비트 호환성을 갖추도록 업데이트하고 개발자에게 그 사실을 알리세요. 다음 폼을 통해 뉴스 그룹에 등록해 고객 서비스 제공에 도움이 될 수 있는 최신 도구와 정보에 대한 업데이트를 받아보세요.

앞으로의 전망

이미 64비트를 지원하는 개발자께는 감사 말씀을 드립니다. 수고 많으셨습니다! 아직 지원하지 않는 개발자께서는 가급적 빨리 64비트 요구 사항에 맞춰 작업을 시작하시기 바랍니다. 마감시한이 다가옴에 따라 앱의 호환 여부 확인 방법에 관해 더욱 자세한 정보로 개발자 문서를 계속 업데이트하겠습니다.

 

64비트 CPU가 인공지능, 머신러닝 및 몰입형 모바일 환경과 같은 영역에 가져올 미래의 변화는 생각만 해도 마음 설렙니다. 64비트 지원을 통해 64비트 기기의 첨단 컴퓨팅 기능으로 실현되는 혁신과 64비트 코드만 지원하는 미래의 안드로이드 기기에 맞는 생태계를 준비합니다.

 

 

[출처] https://developers-kr.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

 

Google Play의 64비트 요구 사항에 맞춰 앱을 준비하세요

<블로그 원문은 이곳 에서 확인하실 수 있으며 블로그 번역 리뷰는 양찬석(Google)님이 참여해 주셨습니다> 게시자: Vlad Radu(Play 제품 관리자), Diana Wong(Android 제품 관리자) 64비트 CPU는 사용자...

developers-kr.googleblog.com

 

Posted by blueasa

댓글을 달아 주세요

 안드로이드 앱을 개발하다 보면 부득이하게 액티비티 화면을 가로, 혹은 세로로 고정해야 할 때가 있습니다. 예를 들자면 게임의 경우는 대부분 가로모드로 고정이 되어 실행되죠. 물론 액티비티 화면을 세로 모드로 고정해야 할 때도 있습니다. 화면의 레이아웃이 가로, 혹은 세로 모드에 최적화되어 있는 경우에는 부득이하게 화면의 회전을 강제로 막아야만 합니다.

 가로 모드는 Landscape, 세로 모드는 Portrait가 정식 명칭입니다. 안드로이드 액티비티의 화면을 Landscape 혹은 Portrait로 고정하고 싶은 경우, 두 가지 방법이 있습니다. 첫번째는 Manifest 파일에서 Activity에 screenOrientation 속성을 주는 방법이고, 두번째는 안드로이드 액티비티의 onCreate() 메소드 내에서 코드로 화면 오리엔테이션을 지정해주는 방법입니다.



 먼저 첫 번째로, Android Manifest 파일에 속성을 지정하는 방법입니다. 먼저 원하는 안드로이드 프로젝트의 AndroidManifest.xml 파일을 엽니다. 그리고 화면을 고정하기 원하는 액티비티의 이름을 찾아 아래 코드의 3번째(혹은 4번째) 열에 해당하는 코드를 추가합니다.


<activity android:name="com.example.appname.ActivityName"
            android:theme="@style/AppTheme"
            android:screenOrientation="portrait" //화면을 portrait(세로) 화면으로 고정하고 싶은 경우
            android:screenOrientation="landscape"> //화면을 landscape(가로) 화면으로 고정하고 싶은 경우
        </activity>



 두 번째로, 액티비티 실행 시에 onCreate() 메소드 내부에서 지정해주는 방법입니다. 원하는 안드로이드 프로젝트의 해당 액티비티를 열어서 아래 코드의 6열(8열)에 해당하는 코드를 추가해 줍니다.

@Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
         
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        // 화면을 portrait(세로) 화면으로 고정하고 싶은 경우
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        // 화면을 landscape(가로) 화면으로 고정하고 싶은 경우
         
        setContentView(R.layout.main);
        // setContentView()가 호출되기 전에 setRequestedOrientation()이 호출되어야 함
    }



이제 해당 프로젝트를 실행하면 지정한 액티비티의 화면이 회전하지 않는 것을 볼 수 있습니다.

출처: https://proletariat.tistory.com/86 [프롤레타리아, IT에 범접하다.]

Posted by blueasa

댓글을 달아 주세요


[링크] https://eunplay.tistory.com/54

Posted by blueasa

댓글을 달아 주세요

이클립스/Eclipse JAR 파일 만들기



Java 프로젝트를 진행하다 보면, 보안상이나 라이브러리 구축을 이유로 JAR 파일을 만들게 되는 데요. 이클립스에서 JAR 파일을 만드는 방법에 대해 알아 보겠습니다.


(1) JAR 파일을 만들 해당 프로젝트에서 마우스 오른쪽 버튼을 클릭 합니다.


(2) 마우스 오른쪽 버튼을 클릭하면 나오는 메뉴중에 [Export] 라는 메뉴를 클릭해 줍니다. 그러면 아래의 Export 메뉴가 나오게 되는데 검색바에서 JAR 라고 입력해 주면, JAR 파일 Export 메뉴가 나오게 됩니다.




(3) [JAR file] 메뉴를 선택해 주시고, JAR 파일을 만들 프로젝트를 선택해 줍니다. 프로젝트를 클릭하면, JAR 파일을 만들 때 디테일한 부분 까지 선택하여 만들 수 있습니다. [Export generated class files and resources] 를 선택해 주시고 [Finish] 버튼을 클릭하시면 Class 형식으로 JAR 파일을 만들 수 있습니다. API 처럼 참조 할 수 있게 말이죠.




(4) 다음은 완성된 Jar 파일의 모습 입니다.




출처: https://arabiannight.tistory.com/entry/이클립스Eclipse-JAR-파일-만들기 [아라비안나이트]

Posted by blueasa

댓글을 달아 주세요


안드로이드(Android) library projects cannot be launched 에러발생시 처치

 

개발환경 : window 7 64bit, Eclipse Mars, Android 4.2.2

 

이클립스를 또 하나 띄워서 다른workspce 

실행했는데 Android library projects cannot be launched

에러가 나면서 debung 가 되지 않았습니다.

 

안드로이드(Android) library projects cannot be launched 에러발생시 처치

 

이것은 현재 프로젝트가 라이브러리로 인식이 되어서

그렇습니다. Main 이 있는 실행 프로그램이 아니고

참조만 되는 라이브러리가 실행이 될리가 없겠죠.

이것은 나도 모르게 어떤 옵션을 체크해서 그런것인데

프로젝트를 선택하고 properties 옵션으로 갑니다.

화면 왼쪽에서 Android 를 선택하고 오른쪽으로 가서

Library 란에 Is Library 체크를 풉니다.

안드로이드(Android) library projects cannot be launched 에러발생시 처치



출처: https://mainia.tistory.com/1163 [녹두장군 - 상상을 현실로]

Posted by blueasa

댓글을 달아 주세요


 < 개발 환경 >  
   작성일 : 2013.01.13
   OS 설치 버전 : Windows7 32bit
   SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17  
   ADT 설치 버전 : 21   
   Java 설치 버전 : JDK 1.6.0_20 / JRE6 
   이클립스 설치 버젼 : Indigo
   테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치)

 < 프로젝트 적용 > 
   API LEVEL : 8  
   minSdkVersion : 8 
   targetSdkVersion : 16  
   Java Compiler Level : 1.6  
   Text file encoding : UTF-8





이클립스/Eclipse 프로젝트 Import시 콘솔에 Unable to resolve target 'android-16' 메시지가 뜰 때 ~!




안드로이드 프로젝트를 Import 할 때 콘솔에 


 Unable to resolve target 'android-16'



위와 같은 메시지가 뜨면서 프로젝트에 "X" 표시가 생기게 되는데, 원인은 해당 프로젝트 AndroidManifest.xml 파일에 타겟으로 지정한(android:targetSdkVersion) SDK 버전을 사용 할 수 없을 경우에 나타나는 에러 메시지 입니다.


위의 경우에는 해당 프로젝트에 targetSdkVersion으로 지정한 'android-16' SDK 버전을 사용 할 수 없는 경우 입니다.


해결책으로는 

1-1) Target SDK 버전을 설치 한다.

1-2) [이클립스 상단 메뉴] -> [Project] -> [Clean]


2-1) Target SDK 버전을 변경 한다. (AndroidManifest.xml에 android:targetSdkVersion를 변경해 준다. 되도록 상위 버전으로 변경하는게 좋음.)

2-2) 변경한 Target SDK 버전을 프로젝트에도 적용해 준다.

[이클립스 해당 프로젝트 폴더] -> [Alt + Enter] -> [Properties 창] -> [Android] -> [Project Build Target 변경] 해준다. (AndroidManifest.xml 에 변경해준 Target SDK와 동일하게 설정해 준다.)



출처: https://arabiannight.tistory.com/entry/287 [아라비안나이트]

Posted by blueasa

댓글을 달아 주세요

참조 : https://stackoverflow.com/questions/42724450/failed-to-get-the-required-adt-version-number-from-the



이클립스에 SDK를 연동하는 과정에서 이런 현상이 계속해서 발생한다.


위와 같은 팝업이 발생하고,


이렇게 SDK Manager가 실행되는듯 하다가 아무 창도 열리지가 않았다.

검색해보니 여러가지 방법이 있었는데 결국 내가 해결한 방법은 두 가지였다.

1) 아래의 경로에서 SDK 구버전으로 다운받기


2) 이클립스에서 사용하는 SDK 경로는 안드로이드 스튜디오에 설정된 SDK 와 다른 경로로 지정하기

Window - Preferences - Android 에서 SDK 경로를 안드로이드 스튜디오와 다르게 지정할것.


[출처] http://thegoodmen.egloos.com/6133033

Posted by blueasa

댓글을 달아 주세요

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

환경: Eclipse Mars

 

안드로이드 개발도구 ADT 는 Android Development Tool 의 약자 입니다. 안드로이드개발 전용 Studio 툴을 다운 받으면 별도의 추가 설치 절차가 필요 없지만 이클립스를 이용해서 개발하기 위해서는 작업이 필요합니다. 먼저 ADT 툴 설치가 끝나면 안드로이드 사이트로 SDK 를 다운받아야 합니다. 그리고 두 개를 연결해야 개발환경이 갖춰 지는 것입니다. 오늘은 ADT 와 SDK 를 다운받아 안드로이드 개발환경을 갖추는 방법에 대해 알아 보겠습니다.

 

이클립스를 다운로드 해서 실행하는 방법은 아래 링크를 참고하세요.

 

이클립스(Eclipse) 설치하는 방법과 실행 오류 해결 하기

 

 먼저 이클립스 홈페이지로 가서 최신 버전을 다운 받습니다. 아래 링크를 클릭해서 다운로드 페이지로 접속한 뒤 자신의 컴퓨터 비트수에 맞는 버전을 설치해 줍니다. 실행을 위한 환경설정은 위에 링크한 포스팅 주소를 참고하세요.

http://www.eclipse.org/downloads

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 안드로이드 개발툴인 ADT 를 설치하려면 플러그인 설치 팝업창으로 가야 합니다. [Help] > [Install New Software] 메뉴를 선택합니다. 다운 받을 주소를 알지 못한다면 Eclipse Marketplace 로 가서 ADT 를 검색해도 됩니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 ADT 다운로드 주소는 아래와 같습니다. 플러그인을 설치 페이지에서 Add 버튼을 눌러 주소 입력창을 띄웁니다. Name 은 사용자가 임의로 지정해도 됩니다. 아래 Location 에는 아래 주소를 복사해서 넣고 OK 를 눌러 창을 닫습니다.

https://dl-ssl.google.com/android/eclipse

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 Repository 주소를 추가하게 되면 업데이트 목록을 체크하게 됩니다. 현재 이클립스에 설치된 것이 없기 때문에 아래 그림처럼 목록에 나타나는 것입니다. Developer Tools 를 체크하고 하단으로 내려가 Next 버튼을 눌러 설치를 진행합니다. 라이센스에 동의하고 설치를 종료하면 이클립스를 재시작해야 합니다. 재시작할지 묻기 때문에 메시지 창이 뜰 때 “예” 라고 하면 됩니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

◎ android SDK 다운 받아 설정하기

 

 ADT 설치 후 이클립스를 재 실행하게 되면 아래와 같은 메시지가 뜹니다. ADT 의 실행과 안드로이드 개발을 위한 라이브러리가 있어야 하기 때문입니다. Android SDK 를 다운 받아 링크를 걸어야 합니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 안드로이드 SDK 를 다운 받을 수 있는 링크가 사라져서 다른 방법을 찾았습니다. 귀찮기는 하지만 굳이 이클립스로 앱을 개발하고자 한다면 이 방법 밖에는 없을 것 같네요. 우선 Android Studio 를 다운받아야 합니다.

https://developer.android.com/studio/index.html

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 설치가 끝나면 안드로이드 SDK 를 최신으로 업데이트 해야 합니다. [File] > [Settings] 메뉴를 클릭합니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 먼저 업데이트 채널이 제대로 설정이 되어 있는지 확인합니다. System Settings > Updates 에서 Automatically check updates for 와 Automatically check updates for Android SDK 가 체크되어 있는지 확인합니다. 그리고 모두 Stable Channel 로 선택합니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 다음은 Android SDK 로 가서 Android SDK Location 을 확인합니다. 해당 폴더에 다운받은 SDK 는 이클립스와 연결할 것입니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 SDK 를 최신으로 업데이트 하기 위해 Lanunch Standalone SDK Manager 링크를 클릭합니다. SDK Manager 팝업창에서 다운 받을 tools 과 API 를 체크하고 설치를 진행합니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 설치가 끝나면 안드로이드 스튜디오에서 다운 받은 폴더를 이클립스와 연결해야 합니다. 이클립스의 Preferences > Android 로 가서 SDK Location 을 수정합니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

◎ 이클립스와 SDK 연결하기

 

 Android SDK를 업그레이드까지 받았다면 환경설정에서 연결을 해 줘야 합니다. [Window] > [Preferences] 메뉴를 선택해서 환경설정 팝업창을 띄웁니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 왼쪽 메뉴 목록에서 Android 를 선택합니다. 그럼 SDK 의 위치를 세팅할 수 있는 화면이 나타납니다. SDK Location 에 위치를 지정해 줍니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기

 

 위치 지정이 끝나면 아래 그림과 같이 목록에 안드로이드 버전과 Google APIs 버전 목록이 나타나야 합니다. 이상으로 이클립스에서 안드로이드 개발을 위한 ADT 툴을 설치하는 방법에 대해 알아 보았습니다. 

이클립스(Eclipse) 안드로이드 개발도구 ADT 설치하기



출처: https://mainia.tistory.com/4425 [녹두장군 - 상상을 현실로]

Posted by blueasa

댓글을 달아 주세요

Windows 시스템에서 java를 설치했다가 삭제 후 다른 버전으로 설치한 경우에 java.dll 혹은 Java SE Runtime Environment 에러가 발생할 수 있다. 이에 대한 해결 방법은 다음과 같다.


1. 에러 현상 : Error message


C:> java.exe

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

Error: could not find java.dll

Error: Could not find Java SE Runtime Environment.


java 실행시 위와 같은 메시지가 발생하는 경우에는 Java가 설치되어있음에도 그 경로를 찾지 못하는 것이다.



2. 에러 해결 방법


먼저 java가 설치되어있는 위치와 JAVA_HOME, JAVA_PATH를 확인한다. 아래 Get-command, echo 등의 명령어는 powershell에서 실행한 것이다. 참고로 특정 디렉터리에서 powershell을 실행하려면 탐색기 경로 부분을 클릭하고 디렉터리명이 보이는 곳에 powershell을 입력하면 된다.


C:> get-command java.exe


CommandType   Name       Version    Source

-----------   ----       -------    ------

Application   java.exe   8.0.171... C:\ProgramData\Oracle\Java\javapath\ja..


Get-Command 명령으로 보면 이 시스템은 C:\ProgramData\Oracle\Java\javapath\ja... 에서 java.exe를 실행하고 있다. 그러면 이번에는 JAVA_HOME과 PATH 환경 변수도 확인해보자. (환경 변수는 powershell에서 echo 명령으로 확인하거나 '고급 시스템 설정' >> '고급' >> '환경 변수'에서 확인할 수도 있다. 아래 그림은 고급 시스템 설정에서 확인하는 메뉴 화면이다. (고급 시스템 설정 창은 제어판에서 직접 찾거나 'Win+Break' 단축키로 불러 올 수 있다.)


Windows 시스템 속성Windows 시스템 속성

아래는 파워셸에서 echo 명령으로 JAVA_HOME과 PATH 환경 변수를 확인한 모습이다.


PS C:\> echo $env:path

C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile64\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility;C:\Program Files\Zulu\zulu-8\bin\;C:\Users\SY.Kim\AppData\Local\Microsoft\WindowsApps;C:\Users\SY.Kim\AppData\Local\Programs\EmEditor;


C:\> echo $env:java_home

C:\Program Files\Zulu\zulu-8



get-command 결과를 보면 java.exe가 잘못 잡혀있다. 이 시스템은 Oracle java를 설치했다가 삭제 후 Zulu java를 설치했는데, Oracle java를 삭제했음에도 설정이 남아있어서 문제가 된 것이다.


이를 해결하기 위해 C:\ProgramData\Oracle\Java 디렉터리를 삭제하면 된다. 삭제 후 다시 get-command를 해보면 위치가 바뀌어 있는 것을 볼 수 있다.


C:> Get-Command java.exe


CommandType   Name       Version    Source

-----------   ----       -------    ------

Application   java.exe   8.30.0.1   C:\Program Files\Zulu\zulu-8\bin\java.exe



3. 근본적인 원인 제거

Oracle JDK를 한 번 설치했다가 삭제해도 흔적이 남는 것은 registry에 남아있기 때문이다. 이를 해결하기 위해서는 PATH에서 Oracle JDK의 흔적을 지워야 한다. 레지스트리 에디터(regedit)를 실행하고 다음 경로를 가보자.


HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment


예를 들어 위와 같이 오류가 발생한 시스템에서는 위 registry key에 다음과 같은 value가 들어있다.


C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile\;C:\Program Files (x86)\Common Files\Acronis\VirtualFile64\;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;%SYSTEMROOT%\System32\OpenSSH\;C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility;C:\Program Files\Zulu\zulu-8\bin\


레지스트리 키 맨 앞에 C:\ProgramData\Oracle\java\javapath 경로가 남아있는데, 편집해서 이 부분을 삭제하면 된다.


[출처] https://sunyzero.tistory.com/256

Posted by blueasa

댓글을 달아 주세요