libro
www.tuyano.com
初心者のためのGradle入門

DefaultTaskクラスの利用 (4/5)

作成:2017-10-21 10:02
更新:2017-10-21 10:02

■コマンドを実行する「Exec」の利用

プロジェクトで作成しているJavaプログラムではなく、その他のプログラムを実行したいこともあります。このような場合に用いられるのが「Exec」クラスです。

Execクラスは、コマンドラインからコマンドを実行する働きをします。これにもいくつかメソッドが用意されており、コマンド実行に関する設定を行うようになっています。

commandLine 《実行するコマンド》,《引数》……
実行するコマンドの内容を指定するものです。第1引数にコマンドを記述し、それ以降にオプションなどを引数として用意していきます。

workingDir 《テキスト》
これは既に説明しましたね。ワーキングディレクトリを指定するためのものです。

args 《Iterator》
args 《値1, 値2, ……》

これも既に登場しました。引数として渡す情報を指定するものですね。これはIteratorとしてまとめて用意することもできますし、不定引数として必要な値を個別に引数指定することもできます。


とりあえず、これだけ知っていればコマンドの実行は十分できるでしょう。では、実際に簡単な例を挙げましょう。

まず、実行するコマンドとして、簡単なバッチファイルを作成しておきましょう。ここではWindowsで実行する前提で説明をします。プロジェクトのフォルダ内に、「java.bat」という名前でファイルを用意しましょう。そして以下のように記述しておきます。
java.exe -version

見ればわかるように、Javaのバージョンを出力させるコマンドを実行しているだけです。このバッチファイルを実行するタスクを作成しましょう。

下のリスト欄にサンプルを掲載しておきました。記述したら、「gradle javaVer」と実行してみて下さい。以下のようにバージョンが出力されます。
> Task :javaVer

***** Java Version *****

C:\Users\○○\Desktop\GradleApp>java.exe -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

インストールしてあるJDKによって表示は変わるでしょうが、だいたいこんな出力がされます。ここでは、以下のように実行コマンドの設定をしています。
workingDir '.'
commandLine 'cmd'
args '/c', 'java.bat'

これにより、cmd /c java.batというコマンドが実行されます。これにより、java.batに記述されていたjava.exe -versionが実行され、Javaのバージョン情報が出力された、というわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

task javaVer(type:Exec) {
    group 'libro'
    description 'print java version.'
    workingDir '.'
    commandLine 'cmd'
    args '/c', 'java.bat'
    doFirst {
        println()
        println('***** Java Version *****')
    }
}
※関連コンテンツ

「初心者のためのGradle入門」に戻る