完成老师的作业的时候,觉得JAVA的编程模型都是做的很好的,只是在实现的时候,细节的问题总是会导致问题的失败.很容易让人以为是语言上的巨人,行动上的矮子.其实做起来的时候远没有那么难,只是这些很小的问题在困扰着自己.所以把它们写在下面,算是不再走弯路吧.
我在做程序的时候,采用的是JBuilder2006 Enterprise Edition + Sql Server 2000 +sp4 + Microsoft SQL Server 2000 SP4.以上的这些软件一定要在做系统前就都找齐,安装好了.
下一步要做的工作就是设置好环境变量path,classpath,javahome.其中javahome我不清楚是否有必要设置.在这里要说明的是, jBuilder2005虽然自己也安装了JVM,但是还是有必要把这些环境变量设置好,因为应用程序运行的时候还是要去找这些环境变量所指的文件的.
path的设置:path=E:\Borland\JBuilder2006\jdk1.5\bin(我的机器上JBuilder2006装在E盘,因为要运行JDK中的一些可执行文件.所以要设置JDK的path).
classpath=.;D:\rmi\formal\classes;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;注意前面的.;一定要加上,作用一般的文章里都有。在这里面,要设置好JDBCfor SQL Server的三个类路径,还有你要运行的自己的应用程序的类路径(D:\rmi\formal\classes;)。从其中可以看到Microsoft SQL Server 2000 Driver for JDBC安装的路径。
java_home=E:\Borlandbak\JBuilder2006\jdk1.5
在这里要注意的是,这些环境变量的等号两边不能有空格。
把以上的工作做好了,就不用在运行程序的时候还为这些事烦恼了。你就可以直接运行rmid守护程序。
下一步要做的工作是在JBuilder中设置JDBC的连接,这一步网上有好多文章都在讲这个问题,一般不会有错误出现(要注意的是,其中有一个连接时候的字串要用localhost,不能用ip地址)。在配置1433端口的时候可以在网上找到打开那个端口的步骤,只要去 Enterprise Manager 中去找到注册好的服务器的属性里去设置就可以了。
下一步就是按着RMI的编程模型去编程了。如何的做法,大家可以参考SUN的RMI编程规范。对于初学者来说,JBuilder的sample目录下有 RMI编程的例子,可以先拿过来看看。然后在那个基础上再去做非激活的RMI程序,这样做起来就会很容易。在运行的时候先要到JBuilder的 Tools菜单下找到RMI Registry,然后运行。再到服务器端把服务端接口的实现代码编译好存根,这个在JBUILDER中是右击你的实现文件,然后在build标签页,选中那个复选框Generate RMI stub/skeleton,在下面的广西框里输入-v1.2,确定即可。在设置你的服务器端程序和客户端程序的运行参数时,要选中你的工程的 properties属性页,然后选择新建,自己起个名字,如server或client,然后服务器端的参数为:- Djava.rmi.server.codebase=file:($ProjectDir)\classes\ -Djava.security.policy=file:($ProjectDir)\SimpleRMI.policy,还要选中你要运行的主类,即包含main()的类。客户端的参数:-Djava.security.policy=file:($ProjectDir)\ SimpleRMI.policy
这里要注意的是,客户端不用设置codebase.接下来就是运行服务器端和客户端的程序了,右击工程中的服务器端文件,就可以选择刚才配置好的运行方式来运行了。(今天先写到这里,第一次写,可能不太清楚,以后慢慢修整吧)