开发者社区


项目管理 | IT/商务管理 | 职涯
首页 - 管理和职涯
管理&职涯
全文搜索:   

Java程序设计语言基础,第一部分 - 第八课:远程方法调用
作者: 翻译:朱茵
2000-12-11 20:05:10



编译例子程序

假定这些例子程序是在zelda用户的 home目录下开发的。服务器程序在用户zelda 的home目录下进行编译,之后把其拷贝到用户zelda的public_html目录中,以便运行。下面分别是在Unix和Win32平台下的命令序列,在命令序列之后的是解释:

Unix:

cd /home/zelda/classes
javac Send.java
javac RemoteServer.java
javac RMIClient2.java
javac RMIClient1.java
rmic -d . RemoteServer
cp RemoteServer*.class /home/zelda/public_html/classes
cp Send.class /home/zelda/public_html/classes


Win32:
cd homezeldaclasses
javac Send.java
javac RemoteServer.java
javac RMIClient2.java
javac RMIClient1.java
rmic -d . RemoteServer
copy RemoteServer*.class homezeldapublic_htmlclasses
copy Send.class homezeldapublic_htmlclasses

开始的两个javac命令编译了RemoteServer和Send 的类和接口。第三个javac命令编译了RMIClient2类。最后一个javac命令对RMIClient1类进行了编译。

接下来的一行在RemoteServer 服务器类上运行rnic命令。该命令生成形式为ClassName_Stub.class和ClassName_Skel.class的输出类文件。这些输出类可以让客户在RemoteServer服务器对象中调用方法。

第一个拷贝命令把RemoteServer类文件及其对应的skel和stub类文件拷贝到一个公共可访问的目录/home/zelda/public_html/classes中,该目录位于服务器机器上。这样,这些类可以被客户机访问并下载。它们被放在网络服务器的public_html目录中,因为这些文件可以被客户程序使用URL来访问。

基于同样的理由,第二个拷贝命令把Send类文件放到同样的目录中。RMIClient1和RMIClient2类文件并不是公共可访问的,它们在其所在的客户机上,通过使用URL访问和下载public_html目录中的远程对象文件。

  • RMIClient1是从客户端的目录进行调用的,在下载公共可访问文件时使用了服务器端的网络服务器软件以及客户端的Java虚拟机。
  • RMIClient2也是在客户端进行调用的,在下载公共文件时,也使用了服务器端的服务器软件以及客户端的Java虚拟机。


 

启动RMI注册器

在启动客户程序之前,你必须启动RMI 注册器,这是个服务器端的命名机制,可以让远程客户获得对远程服务器对象的引用。

在启动RMI 注册器之前,在执行shell或者window 下的rmiregistry 命令之前,务必使得所在窗口中或者shell中的CLASSPATH环境变量不指向你的系统中的远程对象类,包括stub 和skel类。一旦 RMI 注册器在启动时发现了这些类,它将不能从服务器端的Java虚拟机上加载它们。这样,当客户端试图下载远程对象类时,将会产生问题。

下面的命令重置了CLASSPATH变量,并且在缺省的1099端口启动RMI 注册,你可以用如下格式指定一个不同的端口: rmiregistry 4444 &。如果你指定了一个不同的端口,你也必须在服务器端的程序中指定同样的端口。

Unix:
cd /home/zelda/public_html/classes
unsetenv CLASSPATH
rmiregistry &

Win32:
cd homezeldapublic_htmlclasses
set CLASSPATH=
start rmiregistry 

注意点:现在你可以考虑把CLASSPATH还原为初始的设置。


【上一页】 【下一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号