Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ant java执行在完成后挂起_Java_Ant_Liferay - Fatal编程技术网

ant java执行在完成后挂起

ant java执行在完成后挂起,java,ant,liferay,Java,Ant,Liferay,在Liferay ext build-parent.xml中,有一个执行java的目标构建webxml。不幸的是,由于某些原因,这个目标没有完成 我调试了代码,主方法完成。但仍然是在java未执行之后直接执行回显。它只是挂在最后 当我按住Ctrl+c键时,它就会打印出来 [java] Java Result: 1 [echo] web.xml files merged 如果我添加spawn=“true”,那么它将完成,但我不希望这样。 你知道这是什么原因吗?我怎样才能完成 Apache A

在Liferay ext build-parent.xml中,有一个执行java的目标构建webxml。不幸的是,由于某些原因,这个目标没有完成

我调试了代码,主方法完成。但仍然是在java未执行之后直接执行回显。它只是挂在最后

当我按住Ctrl+c键时,它就会打印出来

 [java] Java Result: 1
 [echo] web.xml files merged
如果我添加spawn=“true”,那么它将完成,但我不希望这样。 你知道这是什么原因吗?我怎样才能完成

Apache Ant 1.8.1版和JVM build 1.5.0_17-b04

目标如下:

<target name="build-webxml">
    <java
        classname="com.liferay.portal.tools.WebXMLBuilder"
        classpathref="project.classpath"
        fork="true"
        newenvironment="true" spawn="false" resultproperty="web.xml.build.success"
    >
        <jvmarg value="-Dexternal-properties=com/liferay/portal/tools/dependencies/portal-tools.properties" />
        <!--  -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -->
        <arg value="tmp/WEB-INF/web.xml.original" />
        <arg value="docroot/WEB-INF/web.xml" />
        <arg value="tmp/WEB-INF/web.xml" />
    </java>
    <echo message="web.xml files merged"/>
</target>


我仍然没有解决方案

表明java类com.liferay.portal.tools.WebXMLBuilder是多线程的,其中一个线程仍在后台运行


spawn=“true”之所以有效,是因为ANT jvm不会等待子进程完成。类似地,CTRL-C也可以工作,因为您正在发送终止进程的信号。

表明java类com.liferay.portal.tools.WebXMLBuilder是多线程的,其中一个线程仍在后台运行


spawn=“true”之所以有效,是因为ANT jvm不会等待子进程完成。类似地,CTRL-C也可以工作,因为您正在发送终止进程的信号。

当Apache Ant通过使用、或任务等方式派生一个新进程时,它还将启动一个从标准输入读取的新线程,并将读取的所有内容发送到该进程


请参考

当Apache Ant通过使用、或任务等方式派生一个新进程时,它还将启动一个新线程,从标准输入读取并将读取的所有内容发送到该进程


请参考

它不是多线程的。您可以在这里看到源代码:它读取和写入磁盘上的一些文件。这可能是个问题吗?可能是。我试图追溯代码,但看不到您正在使用的FileUtil类的实现。看到了吗?在没有ANT的情况下独立运行代码时,您能重现这个问题吗?它不是多线程的。您可以在这里看到源代码:它读取和写入磁盘上的一些文件。这可能是个问题吗?可能是。我试图追溯代码,但看不到您正在使用的FileUtil类的实现。看到没有ANT单独运行代码时,你能重现这个问题吗?我面临着同样的问题。你是如何解决这个问题的?我也面临同样的问题。你是如何解决这个问题的?