2013-01-12 32 views
1

A scalacheck jar被意外地包含在Scala 2.9.2的标准发行版中,在lib目录中以及标准的scala运行时类(例如scala-library.jar)中。这是后续Scala发行版的discovered, and fixedScala 2.9.2中的scala runner的类路径中排除scalacheck 2.9.2

我想运行scala 2.9.2解释器并使用scalacheck的不同版本,但我无法忽视lib中的版本。

我想:

$ LOAD_SCALACHECK='import org.scalacheck.Gen; println(Gen.choose(0, 1).sample.get)' 
$ scala -e "$LOAD_SCALACHECK" 
$ scala -nobootcp -e "$LOAD_SCALACHECK" 
$ scala -Dscala.usejavacp=false -e "$LOAD_SCALACHECK" 
$ scala -Dscala.usejavacp=false -nobootcp -e "$LOAD_SCALACHECK" 

所有这些仍在使用的scalacheck.jar。除了从lib中删除jar之外,还有什么办法可以在类路径中运行解释器(不包括lib中的jar)?

回答

0

你总是可以直接切入闯入者,至少对于非SBT管理的Scala来说......如果你在一个SBT管理的Scala中这样做了,我很确定SBT会把它放回去。

在SBT的情况下,您可能会尝试取消所有读取该JAR的权限。我不知道类加载器在那种情况下会做什么,但是我们希望它足够强壮,可以跳过它并继续浏览类路径...