2011-03-11 4 views
1

"work"를 클라이언트에서 서버로 오프로드하기 위해 클래스 파일을 보내려고합니다. 클래스 파일 "MyClass.class"를 보내고 "MyFooClass.class"로 성공적으로 수신합니다.Java에서 네트워크를 통해 전송 된 클래스 파일 실행

서버 측에서 MyFooClass의 main()을 실행하고 결과를 반환해야합니다.

클래스 로더로 MyFooClass를로드하려고하는데 ClassNotFoundException이 발생합니다.

친절히 도움.

아 디트

+2

클래스 이름과 파일 이름이 같아야합니다. – Nishan

+0

답변이 도움이 되었습니까? 그렇지 않다면 코드를 게시하고 오류가 발생하는 위치를 지적 할 수 있습니까? – Victor

답변

0

클래스 명 및 파일 이름이 일치해야합니다. 따라서 단순히 파일의 이름을 바꿀 수는 없습니다.

3

RMI를 사용하지 않는 한 '서버'측에서 클래스 경로에 해당 클래스가 없으므로 ClassNotFoundException으로 실패합니다.

더 큰 질문은 왜 전체 수업을 보내려는 것입니까? 나는 서버에서 클래스를 가지고 클라이언트의 클래스의 상태에 대한 텍스트 표현 (json, xml, yaml, csv)을 보낸 다음 서버가 표현을 읽고 클래스를 생성하게하는 것이 더 쉬울 것이라고 생각한다. es)는 작업을 필요로하고 실행합니다.

+2

+1. 실행 코드를 전송하면 보안 문제와 같은 소리가납니다. 서버가 수행 할 수있는 작업을 정의하고 매개 변수를 보내면됩니다. – Thilo

1

예, 클래스의 이름을 변경하면 안됩니다. 클래스 로더는 MyFooClass.class 만 검색하지만 MyClass.class는 사용할 수 있습니다. 따라서 예상되는 MyClass.class를 사용할 수 없다는 예외가 발생합니다.

관련 문제