当前位置: 首页 > 面试题库 >

如何设置rmiregistry使用的类路径?

淳于健
2023-03-14
问题内容

我正在尝试制作Java
RMI客户端/服务器应用程序。我在启动应用程序服务器端时遇到问题,因为在我尝试启动应用程序服务器端时,在调用Registry.bind()方法期间,它一直运行在
ClassNotFoundException 中。

我从这里的简单教程开始:http : //docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-
world.html。在遵循了这些指令之后,它最初抛出ClassNotFoundException,抱怨它找不到“
example.hello.Hello”。我可以通过从教程中的 destDir
目录启动rmiregistry来解决该问题,因为rmiregistry显然将其初始起始目录用作其类路径的一部分。

此后,我开始使用其他测试应用程序,直到在服务器类中开始使用第三方jar文件之前,我都还不错。现在,如果我的服务器类引用了任何jar文件中的任何内容,则Registry.bind()会引发ClassNotFoundException,因为rmiregistry应用程序不知道这些jar文件。

据我所知,rmiregistry不接受任何类型的类路径启动arg,所以我想知道如何告诉它要确认的类路径。根据此处的教程:http
:
//docs.oracle.com/javase/tutorial/rmi/running.html,“必须确保将要运行rmiregistry的shell或窗口
没有 设置CLASSPATH环境变量,或者具有CLASSPATH环境变量,该变量不包含要下载到远程对象的客户端的任何类的路径。”
这听起来像是我所需要的相反……还是我看错了?是否有人成功启动了使用第三方jar(在我的情况下为commons-io,commons-
logging和rmiio)的RMI客户端/服务器?

顺便说一下,这是在Windows上。

更新 我找到了解决方法。请参阅下面的答案。


问题答案:

(我最初将此答案发布为我的问题的更新。根据Zecas在其中一项评论中的建议,我将其移至答案部分。)

通过不遵守上述问题中引用的第二个教程中的建议,我能够使服务器部分启动:

“必须确保将在其中运行rmiregistry的外壳程序或窗口 没有
设置CLASSPATH环境变量,或者具有不包含要下载到远程对象客户端的任何类的路径的CLASSPATH环境变量。”

我创建了CLASSPATH环境变量,并向其添加了.class输出目录和每个第三方jar文件。我以为以前曾经尝试过,但是我想没有…只是以为如果别人遇到同样的问题,我会离开我的解决方案。



 类似资料:
  • 问题内容: 我有很多jar文件要添加到我的类路径中,因此,每次编译Java文件时,都会得到如下命令: 我尝试使用: 然后: 但是根本没有添加jar:由于缺少jar,我得到了错误信息…谢谢 问题答案: 也许您想尝试使用Maven来构建您的应用程序?它真的很容易设置,并且消除了依赖管理的所有问题。 同样从Java 6开始,您可以在类路径中使用通配符: set CLASSPATH = my_libs \

  • 我正在读这一行: format()方法做的第一件事是从名为output的类路径加载Velocity模板。虚拟机 请解释在这个上下文中类路径的含义,以及我应该如何设置类路径。

  • 问题内容: 有人可以告诉我在NetBeans中在哪里以及如何设置类路径吗?我想添加一个.jar文件。 问题答案: 用鼠标右键单击你的项目。 选择Properties。 在左侧单击Libraries。 下Compile tab-单击Add Jar/Folder按钮。 要么 扩展你的项目。 右键单击Libraries。 选择Add Jar/Folder。

  • 我想解决我的类问题,你能告诉我怎么做吗? null

  • 我用eclipse创建了一个maven项目,并用下面的命令制作了jar文件 打包 当我尝试知道我的mvn项目配置是真的还是不是这个命令 mvn exec:Java-D exec . main class = " giraph . hello world . app " 我得到这个错误: 在helloworld项目上执行目标 org.codehaus.mojo: exec-maven-plugin:

  • 问题内容: 我有一个独立的Java项目。我已经执行了Maven全新安装。现在,我通过命令提示符进入target \ classes文件夹,并在classpath中设置所有必需的文件。现在我执行主类。结果正在显示。 现在,我通过命令提示符移回目标文件夹,并尝试执行jar文件(jar文件具有在其中定义了主类的清单文件)。 现在,我得到以下异常。我也从上面的语句中删除了classpath属性,但仍然遇到