Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »
2020/08/23

Ant で起動したプログラムに標準入力から文字列を与える

  java 
このエントリーをはてなブックマークに追加

Ant の Java Task*1 でプログラムを起動させたときに、起動されたプログラムの標準入力に対して入力を与える方法を調べてみました。

結論から述べると、標準入力に渡したい内容のテキストファイルをあらかじめ用意しておき、<java classname="(クラス名)" input="(ファイル名)"> という感じで、input 属性にそのテキストファイルを渡してやると、その内容をプログラムに渡すことができます。

今回は ./input/ というディレクトリ以下に txt ファイルを作ることにより、それらを1つずつ渡して繰り返しプログラムを実行するための build.xml を作ってみました。for や if を使うためにANT Contrib を使っています。ant なんてもう過去の遺産みたいな感じですが、ちょっとしたことがやりたいときには maven とかよりも融通が利きやすいので便利なんですよね。

build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><project name="hoge" default="run"><property name="mainclass"value="AppMain" /><property name="srcdir"value="./src" /><property name="destdir" value="./bin" /><taskdef resource="net/sf/antcontrib/antlib.xml"><classpath><pathelement location="/path/to/ant-contrib-1.0b3.jar" /></classpath></taskdef><path id="inputs"><fileset dir="./input" includes="*.txt"/></path><path id="classpath"><pathelement location="./bin"/></path><target name="init" /><target name="compile" depends="init"><delete dir="${destdir}" /><mkdir dir="${destdir}"/><javac srcdir="${srcdir}" destdir="${destdir}" includeAntRuntime="false"><compilerarg value="-Xlint:unchecked" /></javac></target><target name="run" depends="compile"><var name="done" value="0"/><for param="file"><path refid="inputs" /><sequential><echo>-----@{file}------</echo><java classname="${mainclass}" input="@{file}"><classpath><path refid="classpath"/></classpath></java><var name="done" value="1"/></sequential></for><if><equals arg1="${done}" arg2="0" /><then><java classname="${mainclass}"><classpath><path refid="classpath"/></classpath></java></then><else /></if></target></project>

実行結果はこんな感じになるはずです。

Buildfile: /path/to/build.xmlinit:compile: [delete] Deleting directory /path/to/bin [mkdir] Created dir: /path/to/bin [javac] Compiling 7 source files to /path/to/binrun: [echo] -----/path/to/input/1.txt------ [java] 1 [echo] -----/path/to/input/2.txt------ [java] 2 [echo] -----/path/to/input/3.txt------ [java] 3 [echo] -----/path/to/input/4.txt------ [java] 4BUILD SUCCESSFULTotal time: 753 milliseconds

byhsur at 23:38[5年前][4年前][3年前][2年前][1年前][1年後][2年後][3年後][4年後] |
こんな記事もあります 「javac 標準入力 build
中国企業が対日工作として偽サイトを作成している
WSL2 上に Docer 環境を作ってみる
仕事効率と消費電力の釣り合いが取れるエアコンの設定温度は 25.7 ℃
LaTeX Workshop から WSL の Ubuntu の LaTeX を呼び出す
VSCode の LaTeX Workshop で自動ビルドを無効にする
Apple が Android のサイドローディングの問題を指摘
Teams のチャットへのディープリンクを作る
3 年ぶりの LTS となる Java 17 が登場
全てのライブラリが static リンクされた curl
Windows 10 のドキュメントフォルダやゴミ箱のアイコンが変更に
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11928
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL:Yahoo! JAPAN IDでログイン

« :: »
Copyright © 2004-2023 by CLES All Rights Reserved.
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 .アーロンチェアのポスチャーフィットを修理(99717)
2 .年次の人間ドックへ(99116)
3 .福岡銀がデマの投稿者への刑事告訴を検討中(99113)
4 .三菱鉛筆がラミーを買収(98724)
5 .2023 年分の確定申告完了!(1つめ)(98693)
最新のエントリ
cles::blogについて
誰が書いてる?
最近行った場所
サイトポリシー
タグ一覧
検索ワードランキング

Referrers

    Powered by CLES
    Nucleus CMS v3.31SP3/w memcached
    21377133(W:7758 Y:1720 T:1232)
    cles::blogのはてなブックマーク数
    benchmark


    [8]ページ先頭

    ©2009-2025 Movatter.jp