gradlew.bat 로 빌드된 java application 을 실행시키려면 매번 재 빌드를 해고 실행이 되니 매우 번거롭습니다.

이미 빌드가 되었으니 그냥 실행만 하면 되는데.. 무슨 빌드를 항상 그렇게 오래하는지.. ㅡㅡ;;

 

그래서 구글링을 해봤습니다.

역시 답이 쉽게 나오진 않더군요..

여러 사이트에서 나온 결과를 가지고 조합을 하니 저도 되네요.. ㅠ

 

그래서 정리를 좀 해보았습니다.

GcmSender를 가지고 테스트를 한거라 이 예제를 가지고 바로 설명드립니다.

 

1. 준비물 : gcm

 - 빌드 결과물 : GcmSender.class 파일

 

2. 실행 방법

 - GcmSender.class 파일 위치 확인 :

D:\google\google-services\android\gcm\gcmsender\build\classes\main\gcm\play\android\samples\com\gcmsender

엄청 Depth가 되는 곳에 class파일이 생성되었습니다

 - 아래와 같이 class 파일 실행

   tempate : java -cp [컴파일된 class 파일의 위치] package_name.target_class_file_name

   예시 : java -cp  D:\google\google-services\android\gcm\gcmsender\build\classes\main  gcm.play.android.samples.com.gcmsender.GcmSender

 

3. 주의사항

   - java.exe 의 경로는 환경변수에 설정되어있어야 합니다.

   - "-cp" 뒤에는 컴파일된 class 파일의 위치를 가르킬 수 있는 경로명이 나와야 합니다.

      이 때, package 명에 의해 지시되는 경로명은 생략해야 합니다. (2번의 빨강색 글씨까지만 적어야 합니다.)

   - package name은 source를 보면 source 최상단에 package name이 나와있습니다.

     GcmSender의 경우 package name이 "gcm.play.android.samples.com.gcmsender" 입니다.

     그리고 실제 Class 이름은 GcmSender 입니다.

    그래서 둘을 합친 파일이름이 마지막에 적혀야 합니다.

 

4. "-cp" 의 의미 : -cp <디렉토리 및 zip/jar 파일의 클래스 검색 경로>

   (java 를 그대로 치면 나오는 설명입니다.)

 

참고> gcm test 예제는 아래의 github에서 다운로드 받을 수 있습니다.

https://github.com/googlesamples/google-services.git

 

5. 쉽게 볼 수 있는 에러 메시지

 위의 방식을 따라하다가 대/소문자 혹은 path가 틀릴경우 아래와 같은 에러를 보시게 될겁니다.

(영문판이면 "Could not find the main class" 혹은 "NoClassDefFoundError" 등을 보시게 됩니다.)

 

기본 클래스 gcm.play.android.samples.com.gcmsender.GcmSender을(를) 찾거나 로드할 수 없습니다.