mike-neckのブログ

Java or Groovy or Swift or Golang

やんくさんがKotlinアプリケーションをgradleで走らせたけど、スタンダードアウトが出てこないと騒いでいたので調べたけど、っgrksだった件について

昨日、こんなイベントになし崩し的に参加してました。

www.zusaar.com

その中で、@yy_yamkさんがgradleでアプリケーション走らせたのに、標準出力が出てこないと騒いでいました。

はて、僕そんなことで困ったことあったっけ?と思いつつ、すぐ解決方法が見つからないので、っgrksと言っておきました。

そのまま放置するのもアレなので、ちょっと調べました。

アプリケーション走らせるためにはapplicationプラグインを入れます。

apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'application'

mainClassName='yy.yank.YyYank'

//以下略

標準出力になんか表示されるアプリを作ります。

package yy.yank;

public class YyYank {

    public static void main(String[] args) {
        System.out.println(":q!");
    }
}

runタスクを走らせます。

$ gradle run
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
:q!

BUILD SUCCESSFUL

Total time: 3.509 secs

ん?ちゃんと標準出力出てますけど???

ひょっとしたら、Kotlinプラグインが標準出力を変えているのかもしれんなと思って、Kotlinプラグインギッハブを見に行きましたが、

_人人人人人人人人人人_
> 儂Kotlin読めない <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

まあ、stackoverflowになら何かあるだろうと思って、「grdale kotlin plugin run application」で検索したら、

d.hatena.ne.jp

ってのがあって、その中で

apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = 'demo.DemoPackage'

とやったら、ちゃんと標準出力されていました。

結論

っgrksだった

:q!