以前JShellでワンライナーのスクリプトっぽく書くのに挑戦しました
sucrose.hatenablog.com
この記事を書いてからJavaでワンライナーを書いて他の言語よりも嬉しい場合ってあんまりないかもと思い始めてきました
とりあえず思いついた例として、JavaのRobot
クラスはスクリーンショットを取ったりキー入力やマウスの入力ができて、これは他の言語では標準ではあまり入ってなくて便利かもと一瞬考えました
というわけでスクリーンショットを撮るワンライナーを書いてみました
前の記事には書きませんでしたがjshell
に JAVASE
という引数を渡すとImports all Java SE packages.
してくれるらしいのでこれを使います。ちなみに起動がすごく遅くなります
コード
変数に代入したりせず簡潔に(?)書けました
screen.png
というファイル名で保存します
実行に時間がかかるのでいつスクリーンショットが取られるのかは動かしてみないとわかりません
echo 'ImageIO.write(new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())), "PNG", new File("screen.png"))' | jshell JAVASE -