You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Geoffrey <jc...@hotmail.com> on 2004/04/12 17:58:59 UTC

Exectable RMI client and server jar

Hi all,

To run my RMI server I currently have to do this (straight from Sun's RMI
tutorial):

start %JAVA_HOME%\bin\rmiregistry
java -Djava.rmi.server.codebase=file:/. -Djava.rmi.server.hostname=localhost
 -Djava.security.policy=java.policy mypackage.ServerEngine

Is it possible to make a single executable jar configured in a way so the
user only has to open it (java -jar or even a double click in windows)?

- How do I configure Maven to configure the -D parameters in the generated
jar?
- Can I place my java.policy file in my jar? (so configure it as a resource
in maven)
- Can I make it call "start rmiregistry"? This one isn't so important as the
rest, as this problem only occurs on the server and the others also occur on
the client.

Thanks for any and all help,
Geoffrey




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: Exectable RMI client and server jar

Posted by Jens Riboe <je...@ribomation.com>.
If you want to launch a RMI servant, as a stand-alone, from a JAR file
you must change your program according to the following steps

a)	skip rmiregistry and create an internal registry thread instead

http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/registry/LocateRegistry.htm
l#createRegistry(int)
	and bind your RMI servant to your internal registry

http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/registry/Registry.html#bind
(java.lang.String,%20java.rmi.Remote)

b)	skip the policy file and register a permissive security manager instead
	http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RMISecurityManager.html
	subclass RMISecurityManager and implement an empty checkXyz() for each
	thrown SecurityException

c)	if you need dynamic client code loading,
	launch an internal (simple/tiny/limited) http server, which points to a
directory of your class files,
	which should be available for your RMI client
	http://java.sun.com/j2se/1.4.2/docs/guide/rmi/spec/rmi-arch5.html

d)	declare the Main-Class JAR manifest attribute

e)	jar it together using Ant, before messing around with maven

f)	launch it using double-click or java -jar ...

Kind regards,
	Jens Riboe


-----Original Message-----
From: news [mailto:news@sea.gmane.org]On Behalf Of Geoffrey
Sent: Monday, April 12, 2004 5:59 PM
To: users@maven.apache.org
Subject: Exectable RMI client and server jar


Hi all,

To run my RMI server I currently have to do this (straight from Sun's RMI
tutorial):

start %JAVA_HOME%\bin\rmiregistry
java -Djava.rmi.server.codebase=file:/. -Djava.rmi.server.hostname=localhost
 -Djava.security.policy=java.policy mypackage.ServerEngine

Is it possible to make a single executable jar configured in a way so the
user only has to open it (java -jar or even a double click in windows)?

- How do I configure Maven to configure the -D parameters in the generated
jar?
- Can I place my java.policy file in my jar? (so configure it as a resource
in maven)
- Can I make it call "start rmiregistry"? This one isn't so important as the
rest, as this problem only occurs on the server and the others also occur on
the client.

Thanks for any and all help,
Geoffrey




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org