代码之家  ›  专栏  ›  技术社区  ›  Kipton Barros tanza9

嵌入式scala repl继承父类路径

  •  8
  • Kipton Barros tanza9  · 技术社区  · 14 年前

    按中的要求 this thread 在scala邮件列表中,如何创建继承父程序类路径的嵌入式scala repl?假设父scala程序是使用 scala -cp <classpath> ... 可以 <classpath> 作为字符串访问并用于初始化嵌入的repl?(The 爪哇 类路径,可通过 System.getProperty("java.class.path") ,似乎与scala类路径不同。)

    或者,嵌入式scala repl可以从父进程继承或构造其类加载器(michael d_¼rig的scaladays 2010 Talk可能是相关的)。这是推荐的方法吗?

    3 回复  |  直到 13 年前
        1
  •  6
  •   Eugene Yokota    13 年前

    Googling

    lazy val urls = java.lang.Thread.currentThread.getContextClassLoader match {
      case cl: java.net.URLClassLoader => cl.getURLs.toList
      case _ => error("classloader is not a URLClassLoader")
    }
    lazy val classpath = urls map {_.toString}
    

    settings.classpath.value = classpath.distinct.mkString(java.io.File.pathSeparator)
    

    settings.classpath

        2
  •  2
  •   oxbow_lakes    14 年前

    usejavacp

    val settings = new scala.tools.nsc.Settings
    settings.usejavacp.value = true
    
        3
  •  1
  •   Kipton Barros tanza9    13 年前

    java.class.path Calculated.userClasspath scala.tools.PathResolver scala -classpath

    settings.classpath.value = ...