错误:使用相同的JVM时忽略JVM args

时间:2017-11-22 16:35:21

标签: java ant jvm

运行以下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脚本中遗漏了什么。

1 个答案:

答案 0 :(得分:2)

尝试将fork="true"添加到<java classpath="${basedir}/bin" classname="de.tk1.g4.ta1.client.MainClient">,让客户端在单独的JVM中运行。