【问题标题】:running an RMI server in command line and eclipse在命令行和 Eclipse 中运行 RMI 服务器
【发布时间】:2011-02-28 01:54:12
【问题描述】:

我需要使用命令行运行我的 RMI 服务器 RmiEncodingServer), 我的类文件位于此文件夹中:

C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerClasses

在包中hw2.rmi.server。 代码库位于此文件夹中:

C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerCodeBase

在包中hw2.rmi.server

我使用命令行:

java –classpath C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerClasses\ -Djava.rmi.server.codebase=file:/C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerCodeBase -Djava.security.policy=C:\workspace\distributedhw2\permissions.policy hw2.rmi.server.RmiEncodingServer

但我得到一个“找不到类”异常,如下所示:

Exception in thread "main" java.lang.NoClassDefFoundError: ûclasspath
Caused by: java.lang.ClassNotFoundException: ûclasspath
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: GÇôclasspath.  Program will exit.

我哪里出错了?

另外,如果您可以提供有关如何在 eclipse 中运行服务器的说明,我添加了以下内容作为 VM 参数,但我得到了 RmiServerCodeBase 中的类的类未找到异常:

-Djava.security.policy=C:\workspace\distributedhw2\permissions.policy -Djava.rmi.server.codebase=file:/C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerCodeBase

谢谢

【问题讨论】:

    标签: java eclipse rmi


    【解决方案1】:

    我发现问题在于我试图引用代码库中的 .java 文件而不是 .class 文件,我想该属性名称“代码库”有点误导。因此,如果您想在 RMI 服务器中执行此操作,您可以这样做:

    String codeBasePath =  "file:/C:/workspace/distributedhw2/"
            + "AgencyServers/RmiEncodingServer/RmiServerClasses/";
            System.setProperty("java.rmi.server.codebase",codeBasePath);
    

    或简单地将以下内容作为 VM 参数传递:

    -Djava.security.policy=C:\workspace\distributedhw2\permissions.policy -Djava.rmi.server.codebase=file:/C:\workspace\distributedhw2\AgencyServers\RmiEncodingServer\RmiServerClasses
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-04
      • 2016-04-13
      • 2023-03-16
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      相关资源
      最近更新 更多