rmic 컴파일시 오류
글쓴이: lhs2008 / 작성시간: 목, 2005/08/18 - 11:58오전
안녕하세요?
간단한 RMI 프로그램을 작성하고 있는데요...
소스파일 컴파일하고 스텁, 스켈레톤 클래스를 만들기 위해 rmic를 실행시키면 아래와 같이 에러가 나네요...
[hslee@ultragen rmi_arith]$ rmic ArithImpl Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: ArithImpl at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.findClass() (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.analyzeClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.processClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.run() (/usr/lib/libgcj.so.5.0.0) at gnu.java.rmi.rmic.RMIC.main(java.lang.String[]) (/usr/lib/libgcj.so.5.0.0) Caused by: java.lang.ClassNotFoundException: java.lang.StringBuilder not found in [file:./, core:/] at java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) (/usr/lib/libgcj.so.5.0.0) at java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/usr/lib/libgcj.so.5.0.0) at _Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (/usr/lib/libgcj.so.5.0.0) at _Jv_BytecodeVerifier.verify_instructions_0() (/usr/lib/libgcj.so.5.0.0) at _Jv_VerifyMethod(_Jv_InterpMethod) (/usr/lib/libgcj.so.5.0.0) at _Jv_PrepareClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at _Jv_WaitForState(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0) at java.lang.VMClassLoader.linkClass0(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0) ...7 more
환경은 아래와 같습니다.
OS : FC3 (2.6.12-1.1372)
JAVA : 1.5.0_04
rmic : 3.4.4
사실 자바 1.4.2_08버젼에서는 rmic이 제대로 작동했었습니다. 그런데 rmi 서버 띄우는 부분에서 연결에러가 나서 살펴보니 페도라에서 자바 1.4.2_08버젼을 사용할 경우 그런 버그가 있다고 하더군요. 그래서 1.5.0_04로 하려고 했는데 rmic에서 에러가 나네요..ㅠㅠ
해결책 아시는 분 답변좀 부탁드립니다.
그럼~
Forums:
어디에 있는 rmic 가 실제로 실행되는지 확인해 보세요.에러 메세지
어디에 있는 rmic 가 실제로 실행되는지 확인해 보세요.
에러 메세지로 봐서는 gcj 에 포함되어 있는 rmic 가 실행되는군요
해결했습니다.
답변주시기전에 rmic 위치를 확인하던중 JAVA_HOME/bin에 있는 rmic가 아닌 /usr/bin에 있는 rmic가 실행되는것을 확인하고, 이를 JAVA_HOME/bin에 있는것으로 실행하니 제대로 동작하는군요...
그러고보니 자바 1.4.2_08버젼에서도 libgcj의 rmic을 사용했었는데 그때는 에러가 안나았던걸로 보아 두 rmic가 호환이 되었나봅니다.
답변주셔서 감사합니다. ^^;
댓글 달기