- PR -

Ant実行時の不可解な現象

1
投稿者投稿内容
ひろひろ
常連さん
会議室デビュー日: 2004/07/23
投稿数: 36
投稿日時: 2008-01-21 15:37
いつもお世話になっております。Ant実行時に不可解な現象が発生しており困っております。
ご教授お願いしますm(_ _)m



現在、Antタスクを作成しているのですが、
build.xmlを以下のように作成した場合に、
なぜか<input>タグで2回Enterを押さないと処理が実行されないという現象が発生しています。

<build.xml>
コード:
<?xml version="1.0"?>
<project name="setup" default="sample" basedir=".">

	<path id="runtime.classpath">
		<dirset dir="../bin"></dirset>
	</path>
	
	<target name="sample">
		
		<java classpathref="runtime.classpath"
                      classname="sample.Sample"
                      fork="true" >
                </java>
		
		<input message="何か入力してください。" 
                       addproperty="input.hoge" 
                       validargs="yes,no" 
                       defaultvalue="no">
                </input>
		
	</target>
	
</project>



上記の例の場合
下記のように2回「yes」を入力しないと実行されません。
1回目の入力時に何も入力せずに空白のままEnterを押しても、同様に2回目の入力を要求されます。

<ant実行>
コード:
>ant sample

Buildfile: build.xml

sample:
     [java] hogehoge
    [input] 何か入力してください。(yes,no)
yes
yes  ←<<<<<2回入力しないと実行されない>>>>>

BUILD SUCCESSFUL
Total time: 7 seconds


実行しているJavaプログラムはmainメソッドでSystem.out.printlnを実行しているだけの簡単なJavaプログラムです。

<java>タグのfork属性をfalseにしたところ、この現象が起こらなかったので、Antを実行しているVMとは別のVMでJavaプログラムを実行していることが原因であるところまでは分かったのですが、fork属性をtrueにした状態でこの現象を回避する方法はないのでしょうか?

Ant及びJavaの実行環境は
Ant:1.6.5
Java:JDK1.5.0_11
となっております。

以上、よろしくお願い致します。
ひろひろ
常連さん
会議室デビュー日: 2004/07/23
投稿数: 36
投稿日時: 2008-01-23 10:57
自己レスです。

inputタグの問題なのでjavaタグの標準入力があやしいと踏んで、ためしにinputstring属性をつけてみたら解決しました。

コード:
<java classpathref="runtime.classpath"
                      classname="sample.Sample"
                      fork="true" 
                      inputstring="">
</java>



inputstring属性には何も指定しませんでした。

fork="true"であれば標準入力を待つ仕様なのかバグなのかわかりませんがひとまず解決しました。
1

スキルアップ/キャリアアップ(JOB@IT)