1

一个scalacheckjar 意外地包含在 Scala 2.9.2 的标准发行版的lib目录中,以及标准的 scala 运行时类(例如scala-library.jar)。这是被发现的,并为后续的 Scala 发行版修复。

我想运行 scala 2.9.2 解释器并使用不同版本scalachecklib.

我试过了:

$ 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. 除了从中删除 jar 之外,还有什么方法lib可以运行解释器,将类路径中的 jar 排除在外lib

4

1 回答 1

0

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

在 SBT 情况下,您可以尝试撤销所有读取该 JAR 的权限。我不知道类加载器在这种情况下会做什么,但希望它足够强大,可以跳过它并继续查看类路径......

于 2013-01-12T01:55:01.877 回答