java动态加载类 框架_java运用RMI框架类的动态加载不成功
最近在看《java网络编程精解》,第11章中用RMI动态加载类,可怎么试都不成功,求大神解答
1.
我先在C盘下启动了rmiregistry注册表,如果部署成功注册表应该会从codebase指定位置动态加载类
2.
F:\RMIEcho\server\目录下启动了服务器,命令行如下
start java -Djava.rmi.server.code=file:\\\F:\RMIEcho\download\ EchoServer
报异常CommunicationException...,ClassNotFoundException: Echo]...
各种尝试
a.网上说是codebase设置错误,可路径没错呀,之后我又把download目录用tomcat发布到网络上,可还是不行,注册表找不到类文件。
b.在EchoServer中设置了安全策略文件,又报些安全管理器的异常,解决完这些异常,运行到bind又是找不到类,郁闷。。。EchoServer中应该可以不设置安全管理器的吧??貌似客户端需要动态下载类才用设置安全管理器吧???
3.
该启动EchoClient了,可服务端都没建好。。。啊啊啊啊。
ps
我把所有文件放在一个目录下是可以运行的,一分开就崩了。。。就这么点代码改了一晚上都没搞好,睡觉还梦到在改代码,郁闷呀,纯新手,大神们不要鄙视我。。。。
文件结构
client
F:\RMIEcho\client\Echo.class
F:\RMIEcho\client\EchoClient.class
download
F:\RMIEcho\download\Echo.class
F:\RMIEcho\download\EchoImpl.class
server
F:\RMIEcho\server\EchoServer.class
F:\RMIEcho\server\EchoImpl.class
F:\RMIEcho\server\Echo.class
代码
EchoServer.java
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class EchoServer {
public static void main(String[] args) {
try {
Echo echo = new EchoImpl();
Context namingContext = new InitialContext();
namingContext.bind("rmi:Echo", echo);
System.out.println("服务器注册了一个对象");
} catch (Exception e) {
e.printStackTrace();
}
}
}
EchoClient.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.rmi.RMISecurityManager;
import javax.naming.Context;
import javax.naming.InitialContext;
public class EchoClient {
public static void main(String[] args){
String url="rmi://localhost/";
try {
Context namingContext=new InitialContext();
Echo echo=(Echo)namingContext.lookup(url+"echo");
BufferedReader keyborad=new BufferedReader(new InputStreamReader(System
.in));
for(String line=keyborad.readLine();line!=null;line=keyborad.readLine()
){
System.out.println(echo.echo(line));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Echo.java
import java.rmi.Remote;
import java.rmi.RemoteException;
interface Echo extends Remote {
public String echo(String s)throws RemoteException;
}
EchoImpl.java
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class EchoImpl extends UnicastRemoteObject implements Echo{
EchoImpl()throws RemoteException{}
public String echo(String s){
return "echo:"+s;
}
}
java动态加载类 框架_java运用RMI框架类的动态加载不成功相关推荐
- java api 第一个类是_JAVA常用API:String 类的常用方法
字符串是一个对象,有很多方法可以使用 1. length();返回字符串的长度 String str = "abcd"; int len = str.length(); 2. is ...
- java语言中的类可以_java 语言中的类
类 一.类 类是具有相同性质的一类事物的总称, 它是一个抽象的概念. 它封装了一类对象的状态和方法, 是创建对象的模板. 类的实现包括两部分: 类声明和类体 类的声明 类声明的基本格式为: [ 访问权 ...
- 线程池框架_Java并发——Executor框架详解(Executor框架结构与框架成员)
一.什么是Executor框架? 我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等.线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1 ...
- java当前月份减一个月_Java对日期Date类进行加减运算、年份加减月份加减、时间差等等...
实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public c ...
- java点击图片发出声音_Java 中图片和声音文件的加载
/* * 本程序实现以下效果: * 1.界面显示一个按钮,按钮初始为红色. * 2.将鼠标移到按钮上时,按钮呈蓝色. * 3.点击鼠标,有声音效果. * 4.鼠标离开按钮时,按钮恢复成红色. */ i ...
- Java哪些是线程安全的_Java集合中那些类是线程安全的
线程安全类 在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的.在jdk1.2之后,就出现许许多多非线程安全的类. 下面是这些线程安全的同步的类: vector:就比arraylist多 ...
- java反射调用接口方法参数_Java反射调用某个类的方法(带参数和不带参数)
不多说,直接贴代码,不懂查API,现在就列取要用的方法和类. Class类: public Method getDeclaredMethod(String name, Class>... par ...
- java开发后端框架_java开发后端框架
1 java开发后端框架 java从推出到现在技术不断发展,语言也优化的越来越好,对于java工程师来说技术的不断发展,他们需要不断学习java进阶,而对于新手来说就能从基础到核心.那么新手该怎么学习 ...
- java内部类人打电话依赖手机_Java内部类及反射类面试问题,90%的人都不知道
1.静态嵌套类 (Static Nested Class) 和内部类(Inner Class)的不同? 静态嵌套类:Static Nested Class是被声明为静态(static)的内部类,它可以 ...
最新文章
- python基础之生成器,生成器函数,列表推导式
- ImageNet 存在十万标签错误,你知道吗?
- 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf
- 一个不限制插值个数和上采样倍数的视频增强方法
- 几道经典的SQL题目
- java web 调度_javaweb车辆调度信息管理平台
- java 调用 libsvm_请问该如何调用libsvm 的java 库函数?
- 开放接口的安全验证方案(AES+RSA)
- 漆远离职阿里加盟复旦!大牛纷纷回归学界,大厂AI名存实亡?
- safari调试工具h5手机_iOS通过safari真机调试H5页面
- 火狐控制台的html,怎么使用火狐浏览器调试网页
- 技术管理之巅-如何从零打造高质效互联网技术团队?
- shadertoy学习记录(1)
- 关于一些Ubuntu网络问题的解决办法
- 路由协议RIP、OSPF、BGP比较
- 代码质量管理平台搭建
- 【Python】笨方法学Python学习笔记2
- Linux常用命令大全(史上最全)建议收藏!
- 数据数据泄露泄露_通过超参数调整进行数据泄漏
- Windows7端口被占用的解决办法(笔记本端口被占用)