LoginSignup
3
2

More than 5 years have passed since last update.

Groovyスクリプトの配布方法

Last updated at Posted at 2016-11-22

※過去のブログ記事の移行

テーブルデータ入れ替えツールを配布しようとしたとき、groovy-allのjarを使おうとしてハマったネタ。

jarの場所

そもそもどこにあるのかわからなかった。。
てっきりlib配下にでもあるのかと思っていたら、そんなことはなく、embeddableフォルダ配下にあった。
※Windows8にデフォルトインストールだと以下

C:\Program Files (x86)\Groovy\Groovy-2.1.5\embeddable
groovy-all-2.1.5.jar

※同フォルダ配下にある「groovy-all-2.1.5-indy.jar」はinvokedynamicに対応したjarの模様。
invokedynamicってなんぞ?簡単に言うと効率化が上がったバイトコードみたい。

-jarだとCLASSPATH指定できない?!

alljarを使う場合の書き方は以下のようになるのですが、

java -jar lib\groovy-all-2.1.5.jar UpdateTable.groovy SOME_TABLE.csv

jarオプションの仕様でこの書き方をするとCLASSPATHが一切指定出来ません。
DBアクセスするので、CLASSPATHにJDBCのjarを通したかったのでこれだとまずくて、
色々考えましたが、普通にこんな感じのCLASSPATH指定でいけました。

java -cp .;lib\groovy-all-2.1.5.jar;lib\db2jcc4.jar groovy.ui.GroovyMain UpdateTable.groovy SOME_TABLE.csv
  • libフォルダ配下に使いたいjarを置いたのなら、「-cp .;lib*」でもいいはず。
  • groovy-all-2.1.5.jarのMainクラスを知るためにはjarを解凍して、META-INF配下のMAINFEST.MFの末尾を見ればよいです。"Main-class: groovy.ui.GroovyMain"と書いてます。
  • Groovyスクリプトに渡したい引数は、スクリプト名の後ろにスペース区切りで記入すればOK。

これでGroovyスクリプトを配布できますね!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2