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을(를) 찾거나 로드할 수 없습니다. |
'Programming > Android' 카테고리의 다른 글
[Android] Spinner Button 의 Height 가 너무 높거나 낮을 경우 (0) | 2017.06.13 |
---|---|
[Android] 오래된 내용이지만 롤리팝에서 서비스 connection 에러 발생할 때! (0) | 2017.02.20 |
[Android] Package Name 얻기 (build time) (0) | 2016.03.27 |
GCM 사용시 R.java 에서 에러가 생길 때, 해결방법 (0) | 2016.03.21 |
Android] Error 해결 : Error:The project is using an unsupported version of the Android Gradle plug-in (0.6.3) (0) | 2016.03.04 |