运行以下ant脚本会给出以下错误消息:
[java] Server ready
[java] JVM args ignored when same JVM is used.
[java] org.apache.tools.ant.ExitException: Permission ("java.lang.RuntimePermission" "exitVM") was not granted.
我的build.xml文件:
<project name="tk1">
<dirname property="basedir" file="${ant.file}" />
<target name="compile">
<mkdir dir="${basedir}/bin" />
<javac srcdir="${basedir}/src" destdir="${basedir}/bin" />
</target>
<target name="clean" description="cleanup module">
<delete dir="${basedir}/bin" />
</target>
<target name="run" depends="compile">
<parallel>
<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.server.MainServer" fork="true">
<jvmarg value="-Djava.security.policy=server.policy" />
</java>
<sequential>
<sleep seconds="2" />
<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.client.MainClient">
<jvmarg value="-Djava.security.policy=client.policy" />
<arg value="39001" />
<arg value="Thomas" />
</java>
</sequential>
<sequential>
<sleep seconds="3" />
<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.client.MainClient" fork="true">
<jvmarg value="-Djava.security.policy=client.policy" />
<arg value="39002" />
<arg value="Chris" />
</java>
</sequential>
</parallel>
</target>
<target name="server" depends="compile">
<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.server.MainServer" fork="true">
<jvmarg value="-Djava.security.policy=server.policy" />
<arg value="39001" />
<arg value="Thomas" />
</java>
</target>
<target name="client" depends="compile">
<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.client.MainClient" fork="true">
<jvmarg value="-Djava.security.policy=client.policy" />
<arg value="39001" />
<arg value="Thomas" />
</java>
</target>
</project>
我正在尝试使用RMI构建客户端/服务器应用程序。我想运行一个服务器实例和两个客户端。我在Ant脚本中遗漏了什么。
答案 0 :(得分:2)
尝试将fork="true"
添加到<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.client.MainClient">
,让客户端在单独的JVM中运行。