终于找到了调试RMI的正确方法

博主在英国留学同学提示下,总结出JDK5环境调试RMI的方法。共分4步,包括进入项目文件夹编译.java文件、使用rmic命令生成_Stub.class文件、启动rmiregistry、运行服务器和客户端程序,最终成功看到程序结果。

查阅了很多资料,每种资料说的都不太一样。下定决心熬夜也要弄出来,在英国留学的同学提示下终于总结出了调试RMI的方法

我的环境为JDK5

一共分为4步

1.进入命令行窗口,进入自己项目的文件夹内

使用 javac *.java

这时会产生相同于.java数目的.class文件

2.使用rmic serverName(serverName就是项目的服务器文件名,有的资料中还要我对clientName使用rmic命令这个是会有错误提示的)

这时会产生一个serverName_Stub.class的文件

3.使用start rmiregistry(有的资料直接使用rmiregistry,我使用以后屏幕无显示,也无法看到输入的命令,只有Ctrl+C中断)

这时会跳出rmiregistry窗口,不要管它继续在原来的窗口

4.输入java -Djava.security.policy=policyName serverName 运行服务器

如果成功另外打开一个命令行窗口进入自己项目文件夹

输入 java -Djava.security.policy=policyFileName clientName(注意,有的时候要在后面加上参数localhost)

终于可以看到我可爱的程序结果了

再次我要感谢徐逸卿同学。没有他的指点估计我还在那么多的资料当中迷惑了

### Java RMI (Remote Method Invocation) 教程及常见问题 #### 创建安全的 Java RMI 连接 为了创建一个安全的 Java RMI 连接,可以参考 `samples/rmi` 目录中的示例代码。该示例基于一个基本的 “Hello World” 实现,并进行了修改以安装和使用自定义的 RMI Socket 工厂[^1]。 ```java // 定义远程接口 public interface Hello extends Remote { String sayHello() throws RemoteException; } // 实现远程接口 public class HelloImpl extends UnicastRemoteObject implements Hello { public HelloImpl() throws RemoteException { super(); } @Override public String sayHello() throws RemoteException { return "Hello, world!"; } } ``` 通过上述代码片段展示了如何定义并实现一个简单的远程对象。此对象实现了 `sayHello()` 方法来返回一条问候消息。 #### 错误处理与资源管理 框架类能够执行错误处理以及获取和释放资源的操作。这意味着复杂的错误处理逻辑(如 JDBC 所需)只需编写一次即可重用,从而简化了调用方代码。当涉及更复杂的情况时,这种方法显得尤为有用[^2]。 对于可能发生的异常情况,在设计应用程序时应考虑全面: - 使用 try-catch 块捕获潜在的运行时异常; - 确保所有打开的连接都能被正确关闭; - 提供有意义的日志记录以便于调试。 #### 双重检查锁定机制的问题 关于双重检查锁定模式存在的问题及其原因可以在《Double-checked locking: Clever, but broken》这篇文章中找到详细的解释[^3]。虽然这种优化看起来很聪明,但在某些情况下可能会导致不可预测的行为甚至程序崩溃。因此建议开发者们谨慎对待此类技术细节。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值