Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
速水 康晴
 Groovyスクリプトの起動について
◦ コンソールから
◦ Java/JVMから
2016-02-20 2#nds46
 速水 康晴(はやみ やすはる)
 新潟市西区在住
 ウイングアーク1st株式会社 新潟オフィス
◦ プログラマ(アーキテクト):Java/Flex/ActionScript
 JGGUG(日本Grails/Groovyユーザーグループ...
 良いですよね?!
◦ Javaっぽく書ける
◦ JavaでScriptできる
 ではスクリプトとして、どうやって呼ぶの?
◦ あまり触れられていない
2016-02-20#nds46 4
 GroovyはASFのトップレベルプロジェクト(TLP)に
 Groovy激動の2015年
◦ 01/19:Pivotalが3/末でのサポート終了を発表
◦ 03/--:Codehausの終了発表
◦ 03/17:Apache Incub...
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']
===> [Groov...
 groovyConsoleコマンド
◦ GUI版コンソール
◦ スクリプトを入力・編集して実行
◦ argsは指定できない
2016-02-20#nds46 9
$ groovyConsole Hello.groovy
 Groovy組み込み
◦ groovy.lang.GroovyShell
 evaluate()
◦ 変数はgroovy.lang.Bindingに登録
◦ 実行する毎にコンパイルする→繰り返しには向かない
2016-02-20#nds4...
 Groovy組み込み
◦ groovy.lang.GroovyShell
 parse()
◦ コンパイルしてgroovy.lang.Script→繰り返して使える
2016-02-20#nds46 11
Binding binding ...
 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
◦ 他言語と切り替えて使う場面なら...
 Bean Scripting Framework
◦ Apache
◦ groovy-bsfモジュールが必要
 org.codehaus.groovy:groovy-bsf:2.4.5
◦ 使ってる?
◦ →省略
2016-02-20#n...
 Grengine
◦ http://www.grengine.ch
 ch.grengine:grengine:1.0.5
◦ ch.grengine.Grengine
 変数はgroovy.lang.Bindingに登録
◦ コンパイ...
Nächste SlideShare
Wird geladen in …5
×

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

2016/2/20にNDS46で発表した内容です。

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

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

  1. 1. 速水 康晴
  2. 2.  Groovyスクリプトの起動について ◦ コンソールから ◦ Java/JVMから 2016-02-20 2#nds46
  3. 3.  速水 康晴(はやみ やすはる)  新潟市西区在住  ウイングアーク1st株式会社 新潟オフィス ◦ プログラマ(アーキテクト):Java/Flex/ActionScript  JGGUG(日本Grails/Groovyユーザーグループ) ◦ サポート・スタッフ  E-mail:toby55kij@gmail.com  Twitter:toby55kij 32016-02-20#nds46
  4. 4.  良いですよね?! ◦ Javaっぽく書ける ◦ JavaでScriptできる  ではスクリプトとして、どうやって呼ぶの? ◦ あまり触れられていない 2016-02-20#nds46 4
  5. 5.  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
  6. 6. Hello.groovy 2016-02-20#nds46 6 //配列argsの先頭の内容を表示、無ければworld println "Hello, ${args.size() > 0 ? args[0] : 'world'}."
  7. 7.  groovyコマンド ◦ スクリプトを実行 ◦ 第1引数はファイル名、それ以降は配列argsに  オプション以外 2016-02-20#nds46 7 $ groovy Hello.groovy Groovy Hello, Groovy.
  8. 8.  groovyshコマンド ◦ Groovyスクリプトを直接入力して実行 ◦ argsは変数として指定 2016-02-20#nds46 8 $ groovysh groovy:000> args=['Groovy'] ===> [Groovy] groovy:000> :load Hello.groovy ===> true Hello, Groovy. ===> null
  9. 9.  groovyConsoleコマンド ◦ GUI版コンソール ◦ スクリプトを入力・編集して実行 ◦ argsは指定できない 2016-02-20#nds46 9 $ groovyConsole Hello.groovy
  10. 10.  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"));
  11. 11.  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();
  12. 12.  Groovy組み込み ◦ 他に  groovy.lang.GroovyClassLoader  groovy.util.GroovyScriptEngine ◦ →省略 2016-02-20#nds46 12
  13. 13.  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); }
  14. 14.  Bean Scripting Framework ◦ Apache ◦ groovy-bsfモジュールが必要  org.codehaus.groovy:groovy-bsf:2.4.5 ◦ 使ってる? ◦ →省略 2016-02-20#nds46 14
  15. 15.  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);

×