为什么我可以使用Scala REPL中的Java库而不是脚本?
我正在使用一个使用Joda Time的
Scala脚本.直到今天,这个工作正常.某种程度上,某些事情发生了变化,而且不再有效.
这有效: $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 arg中使用*引起的: $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 ……这真是太疯狂了,因为这是我上次在这个项目上工作的时间,仅仅一两天前!而现在它不起作用了,我想我肯定已经改变了一些东西,但说实话,我想不出它会是什么. 救命! 解决方法
TL; DR:fsc,“快速编译守护进程”,其缓存有问题; fsc -shutdown解决了这个问题.
the Scala IRC channel on FreeNode中的Seth Tisue能够帮助我解决我的问题 – 它与 事实证明,有几种方法可以解决这个问题: >将arg -nocompdaemon传递给scala,根本不使用fsc >工作,应该是防止故障,但速度慢 >运行fsc -shutdown >下次使用scala时,守护程序将自动重启 >运行fsc -reset以重置守护进程的缓存 >可能比关闭它更快,但最不安全的选项 我仍然不知道到底是什么导致了这个问题,但是我从Seth和fsc页面得到的印象是这种事情有时会发生. 谢谢,塞思! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |