The support files are in the directory src,
which lies directly above javatech.
javatech-18
|
|__ src
|
|__ javatech
|
|__ rmi18
|
|__ client
|
|__
server
|
|__
impl
The support files include the security policy files for the client
and server, the command files (for a Windows platform) and a readme
to give instructions to the user.
These policy files determine the security settings for the client
and server programs:
client.policy
|
grant
{
permission java.net.SocketPermission "localhost",
"connect, resolve";
permission java.io.FilePermission ...no
break... "c:\\JavaTechBook\\Code\\P2\\Chapter18\\javatech-18\\build\\classes\\-",
"read";
/* This also works, but is a bit of overkill
permission java.io.FilePermission "<>",
"read";
*/
};
|
local-server.policy
|
/*
Server permissions required for the rmi18 server when client
and server
are running on the same host */
grant {
permission java.net.SocketPermission "localhost",
"accept, connect, resolve";
}; |
The following files assist the user with building and running the
client and server programs on a MSWindows platform. To fit within
the table here, in some places the command lines are broken where
indicated. In the actual files there are no line breaks.
build.bat
|
@rem Builds
the RMI example from Chapter 18.
@rem Set up some local environment variables
setlocal
set class_dir=build/classes
set ifc_dir=src/javatech/rmi18/server
set impl_dir=src/javatech/rmi18/server/impl
set client_dir=src/javatech/rmi18/client
@rem Create the build and classes directories
mkdir build
mkdir build\classes
@rem Compile everything
javac -classpath %class_dir% -d %class_dir% %ifc_dir%/*.java
javac -classpath %class_dir% -d %class_dir% %impl_dir%/*.java
javac -classpath %class_dir% -d %class_dir% %client_dir%/*.java
@rem Run the rmic compiler to generate stubs and skeletons
for RMIExampleImpl
rmic -classpath %class_dir% -d %class_dir% javatech.rmi18.server.impl.RMIExampleImpl
@rem Create a client-only jar file from which to run the
client.
@rem cd to the top of the classes directory
cd build\classes
@rem jar the needed files with the proper directory structure
jar cf client.jar javatech/rmi18/server/RMIExampleInterface.class
javatech/rmi18/client/RMIExampleClient.class
@rem move the new jar file up to the root directory
move client.jar ..\..
@rem and cd back to the root directory
cd ..\..
endlocal
|
clean.bat
|
@rem
Clean up the build directory by deleting it.
rmdir/s/q build
@rem Clean up all jar files
if exist client.jar del/q client.jar |
client.bat
|
@rem
Run the RMIExampleClient from chapter 18.
java -classpath client.jar -Djava.security.policy=client.policy
...no break... javatech.rmi18.client.RMIExampleClient
|
server.bat
|
@rem Run the RMIExampleServer server from chapter 18.
@rem start the rmiregistry using port 3001
start rmiregistry 3001
@rem run the server code
java -classpath build/classes -Djava.rmi.server.codebase=file:///c:/JavaTechBook/Code/P2/Chapter18/javatech-...no
break...18/build/classes/ -Djava.security.policy=local-server.policy
...no break... javatech.rmi18.server.impl.RMIExampleServer
|
Most recent update: Oct. 13, 2005
|