【发布时间】:2012-04-04 20:34:23
【问题描述】:
我正在寻找一种方法来使用由执行的 *.scala 文件的完整路径
scala /path/to/file/file.scala
原因是在我的脚本中我想使用相对于 file.scala 保存位置的路径。所以,假设我想在调用 file.scala 时从 file.scala 内部调用 /path/to/file/file_second.scala
scala ./to./file/file.scala
因为我从中调用 scala 的目录是 /path (即 System.getProperty("user.dir") 将返回的内容)。我所知道的先验是 file_second.scala 与 file.scala 位于同一目录中,但实际上并不知道完整路径。
我试过了。其中包括 getClass.getResource("").split(":")(1),但这将 返回 /path/./ 或 /tmp/scala.tmp/
我想必须有一个干净的解决方案,因为 scala -savecompiled 会在我想要处理的那个目录中创建一个 *.jar,但我就是不知道如何......:/
非常感谢您的帮助。
【问题讨论】:
-
我想添加一个我从第二个答案开发的解决方案(当我几周前阅读它时,我还没有阅读答案 Nr.1),用于在 linux 系统上调用的 scala 脚本。这是我现在使用的方式。谢谢大家的回答,我从中学到了很多!我只是不知道将哪个答案标记为“已接受”。解决办法:
-
#! /bin/bash INSTALL_DIR="$( cd "$( dirname "BASH_SOURCE[0]" )" && pwd )" exec scala -savecompiled -DPARAM_INSTALL_DIR=$INSTALL_DIR "$0" "$@" !# val install_dir = System.getProperty ("PARAM_INSTALL_DIR") + java.io.File.separator