获取scala-library.jar位置

时间:2011-09-27 22:51:45

标签: scala jar environment

如何使用Scala代码从文件系统获取scala-library.jar的完整路径? 我尝试过像scala.Console.getClass.getProtectionDomain.getCodeSource.getLocation.getPath这样的方法,但它似乎不起作用(返回null指针)。

3 个答案:

答案 0 :(得分:3)

我们用它来调整卡尺的类路径:

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

这可以在eclipse中运行,也可以在Mac OS和Linux下从命令行运行。

答案 1 :(得分:1)

一种方法是通过类路径获取它:

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

答案 2 :(得分:1)

有点类似于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")