Java 激活远程对象时存根的ClassNotFoundException

Java 激活远程对象时存根的ClassNotFoundException,java,rmi,classnotfoundexception,Java,Rmi,Classnotfoundexception,在运行上述代码时,我得到TestObjectImpl_存根的ClassNotFoundException。我环顾了一下网络,发现了两种可能的解决方法: 在CLASSPATH变量中指定类文件的路径 在执行测试时,将java.rmi.server.codebase=location与java命令一起提到,location是类文件的位置 以上哪种方法更合适?有更好的解决方案吗?它们都是合适的。我不太喜欢将代码库特性作为这个问题的解决方案。作为类版本控制和部署的更通用解决方案的一部分,它也有它的用途,但

在运行上述代码时,我得到TestObjectImpl_存根的ClassNotFoundException。我环顾了一下网络,发现了两种可能的解决方法:

  • 在CLASSPATH变量中指定类文件的路径
  • 在执行测试时,将java.rmi.server.codebase=location与java命令一起提到,location是类文件的位置

  • 以上哪种方法更合适?有更好的解决方案吗?

    它们都是合适的。我不太喜欢将代码库特性作为这个问题的解决方案。作为类版本控制和部署的更通用解决方案的一部分,它也有它的用途,但仅仅为了这个琐碎的目的,它是一个很大的负担。@EJP还有一件事我不明白。.当它已经在ActivationDesc()中发送时,为什么我需要在类路径中设置位置构造函数?该位置需要是激活守护进程可以访问的URL。是吗?@EJP:是的,位置是一个URL。它是“对象的代码位置(类的位置),一个代码库URL路径”,您忽略了问题的最后七个单词。
     public void Test {
        String location = xyz; //location of the class file for the stub
        ActivationDesc desc = new ActivationDesc( "TestObjectImpl", location, null);
        ActivationID id = ActivationGroup.getSystem().registerObject(desc);
        TestObject to = (TestObject)id.activate(true);
     }