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