Получить местоположение scala-library.jar - PullRequest
1 голос
/ 28 сентября 2011

Как я могу получить полный путь к файлу scala-library.jar из файловой системы с кодом Scala? Я пробовал такие способы, как scala.Console.getClass.getProtectionDomain.getCodeSource.getLocation.getPath, но, похоже, он не работает (вернул указатель null).

Ответы [ 3 ]

3 голосов
/ 28 сентября 2011

Мы используем это, чтобы настроить classpath для caliper:

val so = classOf[ScalaObject].getResource("ScalaObject.class").toString
val scalaJar = so.substring(so.lastIndexOf(":") + 1, so.lastIndexOf("!"))

Это работает в eclipse и fat-jar из командной строки под Mac OS и Linux.

1 голос
/ 28 сентября 2011

Немного похоже на ответ по thoredge, но также ищет путь к классу загрузки (это должно работать в Eclipse + ScalaPlugin):

List("java.class.path", "java.boot.class.path", "sun.boot.class.path")
  .flatMap(s => System.getProperty(s, "")
  .split(java.io.File.pathSeparator))
  .find(new java.io.File(_).getName == "scala-library.jar")
1 голос
/ 28 сентября 2011

Один из способов - пройти через classpath следующим образом:

System.getProperty("java.class.path").split(java.io.File.pathSeparator)
  .filter{_.contains("scala-library")}.head
...