Java 运行可执行jar文件时未找到类错误(使用eclipse导出的RMI应用程序)

Java 运行可执行jar文件时未找到类错误(使用eclipse导出的RMI应用程序),java,jar,rmi,Java,Jar,Rmi,我有一个项目需要一个RMI应用程序。 当我能够在eclipse下成功地测试它们时(使用),我尝试使用eclipse的导出功能将它们导出为jar文件 问题是只有一个应用程序可以很好地处理导出的jar文件 java -jar registry.jar java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error

我有一个项目需要一个RMI应用程序。 当我能够在eclipse下成功地测试它们时(使用),我尝试使用eclipse的导出功能将它们导出为jar文件

问题是只有一个应用程序可以很好地处理导出的jar文件

java -jar registry.jar

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.lang.ClassNotFoundException: common.Registry <-- ???
temp> unzip registry.jar 
Archive:  registry.jar
  inflating: META-INF/MANIFEST.MF    
   creating: client/
  inflating: client/ChatClientImpl.class  
   creating: common/
  inflating: common/ChatRoomProvider.class  
  inflating: common/Entity.class     
  inflating: common/ChatRoomServer.class  
  inflating: common/ChatClient.class  
  inflating: common/Registry.class  <<<--- 
这是发生错误的代码:

try {
    // clients and providers can access with the name Registry
    Naming.rebind("Registry", new RegistryImpl()); <--
} catch (Exception e) {
    e.printStackTrace();
}

我可以显式地指向代码库目录,但jar文件中已经有相同的代码

当我执行RMI寄存器并设置代码库所在的类路径时,这个问题得到了解决

java -jar registry.jar

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.lang.ClassNotFoundException: common.Registry <-- ???
temp> unzip registry.jar 
Archive:  registry.jar
  inflating: META-INF/MANIFEST.MF    
   creating: client/
  inflating: client/ChatClientImpl.class  
   creating: common/
  inflating: common/ChatRoomProvider.class  
  inflating: common/Entity.class     
  inflating: common/ChatRoomServer.class  
  inflating: common/ChatClient.class  
  inflating: common/Registry.class  <<<--- 
export CLASSPATH=SOMEWHERE_THE_LOCAL_BASE_IS_LOCATED
rmiregistry