SlideShare a Scribd company logo
速水 康晴
 Groovyスクリプトの起動について
◦ コンソールから
◦ Java/JVMから
2016-02-20 2#nds46
 速水 康晴(はやみ やすはる)
 新潟市西区在住
 ウイングアーク1st株式会社 新潟オフィス
◦ プログラマ(アーキテクト):Java/Flex/ActionScript
 JGGUG(日本Grails/Groovyユーザーグループ)
◦ サポート・スタッフ
 E-mail:toby55kij@gmail.com
 Twitter:toby55kij
32016-02-20#nds46
 良いですよね?!
◦ Javaっぽく書ける
◦ JavaでScriptできる
 ではスクリプトとして、どうやって呼ぶの?
◦ あまり触れられていない
2016-02-20#nds46 4
 GroovyはASFのトップレベルプロジェクト(TLP)に
 Groovy激動の2015年
◦ 01/19:Pivotalが3/末でのサポート終了を発表
◦ 03/--:Codehausの終了発表
◦ 03/17:Apache Incubator入り
◦ 09/24:バージョン2.4.5リリース
◦ 11/18:Incubator卒業、TLPに
2016-02-20 5#nds46
Hello.groovy
2016-02-20#nds46 6
//配列argsの先頭の内容を表示、無ければworld
println "Hello, ${args.size() > 0 ? args[0] : 'world'}."
 groovyコマンド
◦ スクリプトを実行
◦ 第1引数はファイル名、それ以降は配列argsに
 オプション以外
2016-02-20#nds46 7
$ groovy Hello.groovy Groovy
Hello, Groovy.
 groovyshコマンド
◦ Groovyスクリプトを直接入力して実行
◦ argsは変数として指定
2016-02-20#nds46 8
$ groovysh
groovy:000> args=['Groovy']
===> [Groovy]
groovy:000> :load Hello.groovy
===> true
Hello, Groovy.
===> null
 groovyConsoleコマンド
◦ GUI版コンソール
◦ スクリプトを入力・編集して実行
◦ argsは指定できない
2016-02-20#nds46 9
$ groovyConsole Hello.groovy
 Groovy組み込み
◦ groovy.lang.GroovyShell
 evaluate()
◦ 変数はgroovy.lang.Bindingに登録
◦ 実行する毎にコンパイルする→繰り返しには向かない
2016-02-20#nds46 10
Binding binding = new Binding();
binding.setVariable("args", args);
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(new File("Hello.groovy"));
 Groovy組み込み
◦ groovy.lang.GroovyShell
 parse()
◦ コンパイルしてgroovy.lang.Script→繰り返して使える
2016-02-20#nds46 11
Binding binding = new Binding();
binding.setVariable("args", args);
GroovyShell shell = new GroovyShell();
Script script = shell.parse(new File("Hello.groovy"));
script.setBinding(binding);
script.run();
 Groovy組み込み
◦ 他に
 groovy.lang.GroovyClassLoader
 groovy.util.GroovyScriptEngine
◦ →省略
2016-02-20#nds46 12
 JSR-223
◦ Java6から(javax.scriptパッケージ)
◦ groovy-jsr223モジュールが必要
 org.codehaus.groovy:groovy-jsr223:2.4.5
◦ 他言語と切り替えて使う場面なら、、、
2016-02-20#nds46 13
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("groovy");
engine.put("args", args);
try (FileReader reader = new FileReader(new File("Hello.groovy")))
{
engine.eval(reader);
}
 Bean Scripting Framework
◦ Apache
◦ groovy-bsfモジュールが必要
 org.codehaus.groovy:groovy-bsf:2.4.5
◦ 使ってる?
◦ →省略
2016-02-20#nds46 14
 Grengine
◦ http://www.grengine.ch
 ch.grengine:grengine:1.0.5
◦ ch.grengine.Grengine
 変数はgroovy.lang.Bindingに登録
◦ コンパイル結果をキャッシュ、変更されたら再コンパイル
2016-02-20#nds46 15
Grengine engine = new Grengine();
Binding binding = engine.binding("args", args);
engine.run(new File("Hello.groovy"), binding);

More Related Content

PPTX
今から始めるApache Groovy
PPTX
JsonSlurperの話
PPTX
GroovyのJSONで日付・時刻を扱う
PPTX
GroovyでJSON2015
PDF
Groovyクイズ(計算編)
PDF
GroovyでJSON2014
PDF
Crystal 勉強会 #5 in 渋谷 発表資料
PDF
Crystalを触り始めてから起こったこと
今から始めるApache Groovy
JsonSlurperの話
GroovyのJSONで日付・時刻を扱う
GroovyでJSON2015
Groovyクイズ(計算編)
GroovyでJSON2014
Crystal 勉強会 #5 in 渋谷 発表資料
Crystalを触り始めてから起こったこと

What's hot (20)

PDF
簡単ログ解析ハンズオン

PDF
JGGUG Community LT 2016
PDF
[参考情報]OSC広島のお知らせ
PDF
Strutsから移行する人のためのjsf基礎
PDF
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
PPTX
How to collect frontend technology
PDF
#24 prepare for_hands-on
PDF
#23 prepare for_hands-on
PDF
VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話
PPTX
エンジニアが Webを学ぶために やっててよかったこと
PDF
GoでEPC作って本番運用している話
DOCX
twitewr
PDF
20150704-innovationegg04-conoha
PDF
JAWS-UG東京25オープニング_青木由佳
PDF
G* Workshop in Fukuoka - Introduction
PDF
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
PPTX
Walking front end
PDF
LT JAWS FESTA Kyushu 2015
KEY
Emacsからgitをゆるく使う
PDF
いまさら聞けない WordPress 情報の在り処
簡単ログ解析ハンズオン

JGGUG Community LT 2016
[参考情報]OSC広島のお知らせ
Strutsから移行する人のためのjsf基礎
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
How to collect frontend technology
#24 prepare for_hands-on
#23 prepare for_hands-on
VyOS Users Meeting Japan #4 VyOS 1.2.0の開発の様子と自動テストの話
エンジニアが Webを学ぶために やっててよかったこと
GoでEPC作って本番運用している話
twitewr
20150704-innovationegg04-conoha
JAWS-UG東京25オープニング_青木由佳
G* Workshop in Fukuoka - Introduction
CloudFormation ことはじめ - JAWS UG 名古屋 2019年7月度
Walking front end
LT JAWS FESTA Kyushu 2015
Emacsからgitをゆるく使う
いまさら聞けない WordPress 情報の在り処
Ad

Similar to Groovyスクリプト"再"入門 起動編 (20)

ODP
JavaOne2014サンフランシスコ報告会in大阪
PDF
Arachne Unweaved (JP)
PDF
関西 Java エンジニアの会 2012年6月度 JavaOne 報告会!
PDF
JSR353をGroovyで賢く使う
PDF
いまさら触るAwt
PDF
Groovyの紹介20130323
PDF
Groovy Grails eXchage 2014 報告
PPTX
開発を彩る技術たち
PPTX
Guide to GraalVM (JJUG CCC 2019 Fall)
PDF
GopherJS + Nashorn
PPTX
Black jumbodogをcoreclrで動かしてみた
PDF
はじめてのWallaby.js
KEY
Beginners scala 20121113
PDF
Svgアニメーションを実装してみよう 20150207
PPTX
How to deploy & operate OpenStack Production
PDF
Offloading BPF Implementation to FPGA-NIC したいねって話
PDF
Nodeにしましょう
PDF
2013 08-19 jjug
PDF
Application insights で行ってみよう
PPTX
Clojureの世界と実際のWeb開発
JavaOne2014サンフランシスコ報告会in大阪
Arachne Unweaved (JP)
関西 Java エンジニアの会 2012年6月度 JavaOne 報告会!
JSR353をGroovyで賢く使う
いまさら触るAwt
Groovyの紹介20130323
Groovy Grails eXchage 2014 報告
開発を彩る技術たち
Guide to GraalVM (JJUG CCC 2019 Fall)
GopherJS + Nashorn
Black jumbodogをcoreclrで動かしてみた
はじめてのWallaby.js
Beginners scala 20121113
Svgアニメーションを実装してみよう 20150207
How to deploy & operate OpenStack Production
Offloading BPF Implementation to FPGA-NIC したいねって話
Nodeにしましょう
2013 08-19 jjug
Application insights で行ってみよう
Clojureの世界と実際のWeb開発
Ad

More from Yasuharu Hayami (9)

PPTX
Jggug20141219 collect何とか
PDF
Jggug20120901pojojson
PDF
Groovyでjson
PDF
jggug20120120
PDF
JsonOutputについて
PDF
Groovyの紹介20110820
PDF
Jggug20110617
PDF
Jggugcamp2010 LT
PDF
Jggug20100724
Jggug20141219 collect何とか
Jggug20120901pojojson
Groovyでjson
jggug20120120
JsonOutputについて
Groovyの紹介20110820
Jggug20110617
Jggugcamp2010 LT
Jggug20100724

Groovyスクリプト"再"入門 起動編