HULFTには「送受信ジョブを定義して使う方法」以外に、utlsendなどのユーティリティ系コマンドを直接呼び出してファイル転送や加工を行う手段があります。
これらは事前の送受信定義が不要で、コマンド実行時に条件を指定できるため、テスト送信・スポット利用・簡易処理に非常に便利です。
本記事では、JavaでHULFTコマンドを実行する例をご紹介します。
-
utlsend
: ファイル送信 -
utlrecv
: ファイル受信 -
utlconcat
: ファイル連結 -
utlsplit
: ファイル分割
Javaから外部コマンドを実行する基本
Javaでは ProcessBuilder
を使うことで、外部のHULFTコマンドを呼び出せます。
エラー出力も標準出力にまとめる設定をすれば、ログ管理が容易になります。
共通の呼び出しテンプレートは以下の通りです。
1. ファイル送信(utlsend
)
事前の送信定義が不要で、対象ファイルと宛先ノードを直接指定できます。
-
-f
: 送信するファイルパス -
-n
: 宛先ノード名(HULFTに登録済み)
2. ファイル受信(utlrecv
)
受信ジョブを登録せず、コマンドだけでファイルを取得できます。
-
-f
: 保存先のファイル名 -
-n
: 送信元ノード名
3. ファイル連結(utlconcat
)
複数のファイルを1つにまとめたいときに使います。
1 2 3 4 5 6 7 8 9 10 |
public class ExampleConcat { public static void main(String[] args) { HulftCommandRunner.runCommand( "utlconcat", "-o", "/data/merged.txt", "-f", "/data/file1.txt", "-f", "/data/file2.txt" ); } } |
-
-o
: 出力ファイル名 -
-f
: 結合対象のファイル(複数指定可)
4. ファイル分割(utlsplit
)
大きなファイルを分割して処理したいときに使います。
-
-f
: 分割対象ファイル -
-l
: 分割する行数(例:1000行ごと)
運用上の注意点
-
PATHの設定
Javaから呼び出す際は、utlsend.exe
などのHULFTバイナリがPATHに通っている必要があります。
通っていない場合はフルパス指定が必須です。 -
終了コードの確認
-
0
: 正常終了 -
0以外
: エラー(詳細はHULFTマニュアルのエラーコード参照)
-
-
ログ管理
実際の業務バッチではprocess.getInputStream()
の内容をファイル出力してログ管理することを推奨します。
まとめ
-
utlsend
でファイルを即送信できる -
utlrecv
で即時受信が可能 -
utlconcat
でファイルを連結 -
utlsplit
でファイルを分解
これらをJavaから呼び出すことで、柔軟なファイル連携や加工処理が実現できます。