Исключить scalacheck из пути к классу бегуна в Scala 2.9.2

scalacheck jar был случайно включен в стандартный дистрибутив 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, Есть ли способ, кроме удаления банки из lib, чтобы запустить переводчика, исключая банку из lib на пути к классам?

1 ответ

Вы всегда можете просто вырезать нарушителя, по крайней мере, для Scala, не управляемого SBT... Если бы вы делали это в Scala, управляемом SBT, я почти уверен, что SBT просто вернет его обратно.

В случае SBT вы можете попробовать отменить все разрешения для чтения этого JAR-файла. Я не знаю, что будет делать загрузчик классов в этом случае, но можно надеяться, что он достаточно надежен, чтобы пропустить его и продолжать просматривать путь к классам...

Другие вопросы по тегам