ScalaとSpecs事始め
最近Scalaを始めた。とりあえず鉛筆本を読んだ。O'Reillyの獏本も、iPhone/iPod用電子書籍版を読書中。
ちょっと何か書いてみようか、まずはBDD*1のコードを書いてみようと、Specsのjarをダウンロードしてきた。
SpecsのQuickStartのページを見ながら、helloWorld.scalaを作成した後、
% scalac -cp specs-1.6.1.jar helloWorld.scala % scala -cp specs-1.6.1.jar helloWorld no such file: helloWorld
…QuickStart通りだが動かない。まぁ記述がおかしいからさもありなん。パスを追加して再実行。
% scala -cp specs-1.6.1.jar:. helloWorld java.lang.NoClassDefFoundError: org/specs/util/Tree$class at org.specs.specification.BaseSpecification.(BaseSpecification.scala:55) at org.specs.Specification. (Specification.scala:43) at helloWorld$. (helloWorld.scala:3) at helloWorld$. (helloWorld.scala) at helloWorld.main(helloWorld.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at scala.tools.nsc.ObjectRunner$$anonfun$run$1.apply(ObjectRunner.scala:75) at scala.tools.nsc.ObjectRunner$.withContextClassLoader(ObjectRunner.scala:49) at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:74) at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:154) at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) Caused by: java.lang.ClassNotFoundException: org.specs.util.Tree$class at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:319) at java.lang.ClassLoader.loadClass(ClassLoader.java:254) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399) ... 14 more Caused by: java.io.IOException: unexpected EOF at sun.misc.Resource.getBytes(Resource.java:103) at java.net.URLClassLoader.defineClass(URLClassLoader.java:256) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) ... 19 more
え、動かない!? しかもScala触ってんのにJavaのエラーとか、剥き出しすぎw
結論としては、specsのソースを落としてきて、ビルドしたjarならばQuickStart通り動いた。
% scala -cp lib/specs-1.6.1_BUILD.jar:. helloWorld Specification "helloWorld" + 'hello world' has 11 characters + 'hello world' matches 'h.* w.*' Total for specification "helloWorld": Finished in 0 second, 63 ms 2 examples, 2 expectations, 0 failure, 0 error
ようやく先に進める。それにしても配布されているjarと何が違うんだろう。
Programming Scala: Tackle Multicore Complexity on the JVM (Pragmatic Programmers)
- 作者: Venkat Subramaniam
- 出版社/メーカー: Pragmatic Bookshelf
- 発売日: 2009/06/01
- メディア: ペーパーバック
- 購入: 4人 クリック: 114回
- この商品を含むブログ (7件) を見る
- 作者: Dean Wampler,Alex Payne
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2009/09/25
- メディア: ペーパーバック
- 購入: 1人 クリック: 28回
- この商品を含むブログ (7件) を見る