私はJoda Timeを使用するScalaスクリプトに取り組んでいます。今日まで、これはうまくいきました。どういうわけか、何かが変わったし、もはや働いていません。ScalaのREPLではJavaのlibを使用できますが、スクリプトからは使用できないのはなぜですか?
この作品:
$ scala -cp "lib/*"
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import org.joda.time._
import org.joda.time._
scala> Period.minutes(5)
res0: org.joda.time.Period = PT5M
が、これはしません:
$ scala -cp "lib/*" test.scala
/Users/avi/Dev/experiments/rollups/scala/test.scala:4: error: object joda is not a member of package org
import org.joda.time._
^
one error found
test.scala
しか含まれています
#!/usr/bin/env scala -cp lib/* -deprecation
!#
import org.joda.time._
Period.minutes(5)
これも動作しません。
$ scala -cp "lib/*" -e "import org.joda.time._"
/var/folders/c4/gh5y9_cx5bz8x_4wm060l_mm0000gn/T/scalacmd1248995773392653303.scala:1: error: object joda is not a member of package org
import org.joda.time._
^
one error found
またcp
引数で*
を使用することによって引き起こされていない:
$ scala -cp lib/joda-time-2.0.jar:lib/joda-convert-1.2.jar -e "import org.joda.time._"
/var/folders/c4/gh5y9_cx5bz8x_4wm060l_mm0000gn/T/scalacmd5438658792813459030.scala:1: error: object joda is not a member of package org
import org.joda.time._
^
one error found
...これはちょうど一日か二日前、私はこのプロジェクトに取り組んで最後の時間を働いていたので、それだけでとてもクレイジーです!そして今、それは機能していない、私は何かを変更する必要がありますが、正直なところ私はそれが何であるか考えることができないと思う。
ヘルプ!
_best_方法は、クラスパスのディレクティブで相対パスを使用しないことです。 –
Thanks @ DanielC.Sobral、それは理にかなっていますが、これはスクリプトでは実用的ではないようです。私のスクリプトはこれを一番上に置いています: '#!/ usr/bin/env scala -cp lib/* -deprecation !#'そして、bashの任意の場所からスクリプトを呼び出せます。だから、これを行う良い方法があるかもしれませんが、私はバッシュの専門家でもなくScalaの専門家でもないので、私には分かりません。 –
代替呼び出しモードを使用してください。shを呼び出し、次にshからscalaを呼び出します。この時点で、pwdを使用して現在のディレクトリを取得できます。 –