GUIのあるjavaアプリケーションが一瞬で終わる
GUI(AWT/Swing)のあるjavaアプリケーションをantから動かしたとき,画面が一瞬出てすぐ終わってしまう.結論から言うとjavaタスクに属性fork="true"
を追加するとOKなのだが,とりあえずサンプルなど.
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
public class View{
public static void main(String[] args){
JFrame frame=new JFrame();
frame.getContentPane().add(new JLabel("hello world.",JLabel.CENTER));
frame.setSize(100,50);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
このソース(View.java
)を以下のbuild.xml
でコンパイル&実行すると一瞬画面が出て終了する.
<project name="sample" default="run" basedir=".">
<target name="compile">
<javac srcdir="." destdir="."/>
</target>
<target name="run" depends="compile">
<java classname="View" classpath="."/>
</target>
</project>
javaタスクに属性fork="true"
をつけると,画面を表示する.
<project name="sample" default="run" basedir=".">
<target name="compile">
<javac srcdir="." destdir="."/>
</target>
<target name="run" depends="compile">
<java classname="View" classpath="." fork="true"/> <!-- fork="true"を指定 -->
</target>
</project>