book_stevezheng 2008-11-11 10:01
浏览 215
已采纳

关于ant调用swing程序怪问题

 各位:
  我做了一个简单的JFrame,如下:

 

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.util.Map;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class LaunchViewer extends JFrame {
    private static final long serialVersionUID = 939549177411442972L;

    public static void main(String args[]) {
        String fileName = args[0];
        v.setTitle("Test Viewer");
        v.pack();
        v.setSize(800, 600);
        v.setVisible(true);
        
               /*
        try {
            Thread.sleep(1000000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
               */
    }
}

如果在cmd调用,没有任何问题,但是在Ant中调用的时候,总是一闪而过。ant脚本如下:

 


<project name="runsimpleviewer" default="run" basedir=".">
    <property name="lib.dir" value="./lib">
    
    <path id="classpath">
        <pathelement location="${basedir}\source\customs\target\test-classes">
        <pathelement location="${basedir}\source\customs\target\classes">
        <pathelement location="${jasper.jar.dir}">
        <fileset dir="${lib.dir}">
            <include name="**/*.jar">
        </fileset>
    </path>

    <target name="run">
        <java classname="LaunchViewer">
            <classpath refid="classpath">
        </java>
    </target>
</project>

由于在cmd下面没有问题,所以确定不是代码的事情,怀疑是ant在调用的时候什么地方没有停住,我觉得肯定有地方设置一下,但是没找到:(

 

无奈,我只能在代码中增加了sleep(10000),这下就正常了,但是不用想也知道,只能正常10秒钟

  • 写回答

3条回答 默认 最新

  • iteye_521 2008-11-11 10:15
    关注

    fork if enabled triggers the class execution in another VM (disabled by default)
    你应该这样
    [code="java"]

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?