gpt4 book ai didi

scala - 配置Scala工作表的工作目录

转载 作者:行者123 更新时间:2023-12-04 07:55:25 25 4
gpt4 key购买 nike

我希望 Scala 工作表(和 Scala 解释器)的工作目录是 Eclipse 项目路径,而不是 Eclipse 安装目录。我如何(以非编程方式)实现这一目标?

我知道我可以使用 System.setProperty("user.dir", "...") ,但恕我直言,不属于代码。此外,它似乎不起作用:

object ScratchWS {
System.setProperty("user.dir", "C:\\") //> res0: String = C:\adt-bundle-windows-x86_64-20130219\eclipse
new File("putty.exe").exists() //> res1: Boolean = false

new File("C:\\putty.exe").exists() //> res2: Boolean = true
}

最佳答案

从 Scala Worksheet 0.2.1 开始,无法控制工作表工作目录。

出于安全原因,一旦 JVM 运行,就无法(直接)直接更改 JVM 的工作方式。见 Changing the current working directory in Java?详情。

因此,始终指定完全限定的路径或从完全限定的“ anchor ”指定相对路径通常是一种很好的做法。

这是我在 Scala 工作表中获得这样一个“ anchor ”的技巧

object WorksheetProjectDirHack {
// Yuck.... See: https://github.com/scala-ide/scala-worksheet/issues/102
import Properties._
val pathSep = propOrElse("path.separator", ":")
val fileSep = propOrElse("file.separator", "/")
val projectDir = javaClassPath.split(pathSep).
filter(_.matches(".*worksheet.bin$")).head.
split(fileSep).dropRight(2).mkString(fileSep)

val otherProjectFile = new File(projectDir, "src/main/resources/data.bin")
}

它基本上是利用 .worksheet/bin 的存在来工作的。在 Eclipse 项目目录中创建并附加到 Scala Worksheet 类路径的目录。

关于scala - 配置Scala工作表的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com