Исключить 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-файла. Я не знаю, что будет делать загрузчик классов в этом случае, но можно надеяться, что он достаточно надежен, чтобы пропустить его и продолжать просматривать путь к классам...