我正在阅读head first java,我将尝试使用现成的代码来展示如何使用RMI。以下是类:
远程接口
import java.rmi.*;
public interface MyRemote extends Remote {
public String sayHello() throws RemoteException;
}远程实现
import java.rmi.*;
import java.rmi.server.*;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
public String sayHello() {
return "Server Says,Hello";
}
public MyRemoteImpl() throws RemoteException { }
public static void main(String[] args) {
try {
MyRemote service = new MyRemoteImpl();
Naming.rebind("Remote Hello", service);
} catch(Exception e) {
e.printStackTrace();
}
}
}然后,我将.java和.class文件放在c:\RMI中。当运行它时,它显示未找到MyRemoteImpl类,即使我是从相同的目录运行。我该如何解决这个问题呢?谢谢。
编辑:当我尝试运行此命令时出现错误
rmic MyRemoteImpl发布于 2016-08-30 07:31:04
BuddingProgrammer的评论也适用于我的。
例如,如果您的类位于文件夹C:\users\renato\workspace\ADI\src\semana5中,则应该转到上一级: C:\users\renato\workspace\ADI\src,并且应该像下面这样编译: javac semana5\Calculadora.java
要运行远程管理界面,您应该在C:\users\renato\workspace\ADI\src中键入以下命令
rmic semana5.CalculadoraImp发布于 2012-09-09 13:22:41
如果您没有从包含.class文件的目录中运行此命令,那么您应该这样做,假设您发布的内容中没有package语句。如果有package语句,则应该从包含最高级别程序包的目录运行此命令。
否则,您的CLASSPATH环境变量就有问题。它至少应该包含".",可能还包含一些其他的东西。作为一种变通办法,你可以采用艾萨克的建议,但是当你开始编译和执行时,你只会遇到同样的问题。
发布于 2013-05-14 19:58:57
在每个类、和MyRemoteImpl.
HelloServerpackage HelloServer;的文件夹,然后从包含rmic HelloServer.MyRemoteImpl文件夹的目录中写入javac HelloServer/MyRemote.java和javac HelloServer/MyRemoteImpl.java。<代码>H217<代码>H118您现在应该有了MyRemoteImpl_stub.class,您可以度过愉快的一天:)PS:包名不同于RMI或类中使用的任何对象,这一点很重要。否则将发生对象碰撞。
https://stackoverflow.com/questions/12336224
复制相似问题