ant jdb立即从任务返回

时间:2014-06-26 13:12:58

标签: java ant jdb

我想用ant来运行一个类然后调试器(jdb)或者反过来

无论我采取哪种方式,我都需要立即返回,因为其他需要附加...

这是我目前正在处理的两项任务......(调试是目标运行的地方)

<target
    name="run-debug-target"
    depends="compile" >
    <java
        fork="true"
        classname="uk.co.bedroomcoders.ple.desktop.DesktopLauncher"
        classpath="bin:libs/gdx-backend-lwjgl.jar:libs/gdx-backend-lwjgl-natives.jar:libs/gdx.jar:libs/gdx-natives.jar" >
        <jvmarg line="-agentlib:jdwp=transport=dt_socket,address=localhost:6000,server=y,suspend=y" />
    </java>
</target>

<target
    name="debug"
    depends="run-debug-target"
    description="debugs the project compiling if needed" >
    <exec spawn="true" executable="jdb">    
        <arg value="-listen" />
        <arg value="localhost:6000"/> 
    </exec>
</target> 

1 个答案:

答案 0 :(得分:0)

https://ant.apache.org/manual/Tasks/java.html

请参阅spawn属性:

  

如果启用,则允许启动一个比ant更长的进程。   需要fork = true,并且与超时,输入,输出,错误,结果属性不兼容。

所以..

<java
    fork="true"
    spawn="true"
    classname="uk.co.bedroomcoders.ple.desktop.DesktopLauncher"
    classpath="bin:libs/gdx-backend-lwjgl.jar:libs/gdx-backend-lwjgl-natives.jar:libs/gdx.jar:libs/gdx-natives.jar" >
    <jvmarg line="-agentlib:jdwp=transport=dt_socket,address=localhost:6000,server=y,suspend=y" />
</java>

这样,<java>任务将启动一个运行java类的新java进程并立即返回,而不等待进程返回。