JAVA编程:javaRMI利用进门程序及设置
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点程序本例子包括了共5个文件,分离是HelloClient,Hello,HelloServer,Configur,config.properties--------------------------------------------------------------------------------
/*Hello.java*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.Remote;
importjava.rmi.RemoteException;
/**
*@authordogcome
*
*<p>远程办法挪用接口,界说远程挪用办法</p>
*/
publicinterfaceHelloextendsRemote{
StringsayHello()throwsRemoteException;
}
--------------------------------------------------------------------------------
/*HelloServer*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.RemoteException;
importjava.rmi.registry.LocateRegistry;
importjava.rmi.registry.Registry;
importjava.rmi.server.UnicastRemoteObject;
/**
*@authordogcome
*
*<p>服务器端,完成了Hello接口中的办法,用于完成远程挪用办法的详细营业逻辑</p>
*/
publicclassHelloServerextendsUnicastRemoteObjectimplementsHello{
Stringname;
publicHelloServer(Strings)throwsRemoteException{
super();
name=s;
}
publicStringsayHello()throwsRemoteException{
//TODOAuto-generatedmethodstub
return"Helloworld!";
}
publicstaticvoidmain(String[]args){
/**上面这句话若要加上,则必要举行权限的认证,即增添.policy文件
*而且在命令行中利用以下格局
*java-Djava.security.policy=java.policytest.rmi.HelloServer
*/
/*System.setSecurityManager(newRMISecurityManager());*/
Registryregistry=null;
try{
/**启动注册服务器,利用了这个语句就不再必要在命令行情况中
*启动registry服务了
*/
registry=LocateRegistry.getRegistry();
/*若没有取得毗连,则此句会抛出非常,前面在捕捉落后行相干处置*/
registry.list();
System.out.println("Registertheexistserver!");//$NON-NLS-1$
}catch(RemoteExceptionre){
try{
intport=Integer.parseInt(Configur
.getString("HelloServer.RegistryServerPort"));//$NON-NLS-1$
registry=LocateRegistry.createRegistry(port);
System.out.println("CreateRegistryServer!");//$NON-NLS-1$
}catch(Exceptione){
e.printStackTrace();
}
}
try{
HelloServerhelloServer=newHelloServer("Hello");
registry
.rebind(
Configur.getString("HelloServer.HelloServerName"),helloServer);//$NON-NLS-1$
System.out.println("HelloServerserverstart!");//$NON-NLS-1$
}catch(Exceptione){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------
/*HelloClient*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.*;
importjava.rmi.registry.LocateRegistry;
importjava.rmi.registry.Registry;
/**
*@authordogcome
*
*<p>客户端,必要注册服务器并利用jndi</p>
*/
publicclassHelloClient{
publicstaticvoidmain(String[]args){
/**上面这句话若要加上,则必要举行权限的认证,即增添.policy文件
*而且在命令行中利用以下格局
*java-Djava.security.policy=java.policytest.rmi.HelloServer
*/
/*System.setSecurityManager(newRMISecurityManager());*/
try{
/*注册服务器*/
StringhostName=Configur.getString("HelloServer.RegistryServerName");
intport=Integer.parseInt(Configur.getString("HelloServer.RegistryServerPort"));
Registryregistry=LocateRegistry.getRegistry(hostName,port);
Hellohello=(Hello)registry.lookup(Configur.getString("HelloServer.HelloServerName"));
Stringmessage=hello.sayHello();
System.out.println(message);
}catch(Exceptione){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------
/*
*Createdon2004-11-12
*
*/
packagetest.rmi;
importjava.util.MissingResourceException;
importjava.util.ResourceBundle;
/**
*@authordogcome
*
*<p>猎取体系运转所必要的设置信息,对应的设置文件称号为config.properties</p>
*/
publicclassConfigur{
privatestaticfinalStringBUNDLE_NAME="test.rmi.config";
privatestaticfinalResourceBundleRESOURCE_BUNDLE=ResourceBundle
.getBundle(BUNDLE_NAME);
privateConfigur(){
}
/**
*<p>经由过程key称号取得设置文件的相干信息</p>
*@paramkeykey称号
*@returnString设置文件信息
*/
publicstaticStringgetString(Stringkey){
try{
returnRESOURCE_BUNDLE.getString(key);
}catch(MissingResourceExceptione){
return!+key+!;
}
}
}
--------------------------------------------------------------------------------
#config.properties
HelloServer.RegistryServerPort=1111
HelloServer.HelloServerName=HelloServer
HelloServer.RegistryServerName=127.0.0.1
--------------------------------------------------------------------------------
起首利用rmictest.rmi.HelloServer命令天生必要的stub及skel两个类文件
然后运转HelloServer服务器javatest.rmi.HelloServer
最初运转HelloClient客户端javatest.rmi.HelloClient
屏幕输入HelloWorld,如许,一个最复杂的rmi远程挪用乐成了
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 是一种突破用户端机器环境和CPU 是一种突破用户端机器环境和CPU 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 是一种使网页(Web Page)产生生动活泼画面的语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页:
[1]
2