1

scalacheckjar は、Scala 2.9.2 の標準ディストリビューションのlibディレクトリーに、標準の scala ランタイム クラス (例: ) と共に誤って含まれていましたscala-library.jar。これは発見され、以降の Scala ディストリビューションで修正されました。

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. からjarを削除する以外に、クラスパスlibからjarを除外してインタープリターを実行する方法はありますか?lib

4

1 に答える 1

0

少なくとも SBT で管理されていない Scala の場合は、いつでも侵入者を切除することができます... SBT で管理されている Scala でそれを行った場合、SBT はそれを元に戻すと確信しています。

SBT の場合、その JAR を読み取るためのすべてのアクセス許可を取り消してみてください。その場合にクラスローダーが何をするかはわかりませんが、それをスキップしてクラスパスを調べ続けるのに十分なほど堅牢であることを願っています...

于 2013-01-12T01:55:01.877 に答える