在scala脚本文件中使用source的路径

Way*_*kie 4 scala file path

我正在寻找一种方法来使用由...执行的*.scala文件的完整路径

scala /path/to/file/file.scala 
Run Code Online (Sandbox Code Playgroud)

原因是在我的脚本中我想使用路径,这些路径相对于保存file.scala的位置.所以,假设我想在调用file.scala时调用file.scala中的/path/to/file/file_second.scala

scala ./to./file/file.scala 
Run Code Online (Sandbox Code Playgroud)

因为我从/ path调用scala的目录(即System.getProperty("user.dir")将返回的内容).我所知道的是,file_second.scala与file.scala位于同一目录中而实际上并不知道完整路径.

我试过了.除其他外,getClass.getResource("").split(":")(1),但这将返回/path/./或/tmp/scala.tmp/

我想必须有一个干净的解决方案,因为scala -savecompiled将在我想要处理的目录中创建一个*.jar,但我无法弄清楚如何......:/

非常感谢任何帮助.

小智 7

剧本序言:

#!/bin/sh
export SCRIPT_PATH=$(readlink -f "$0") && exec scala "$0" "$@"
!#
Run Code Online (Sandbox Code Playgroud)

读取值:

val scriptPath = System.getenv("SCRIPT_PATH")
Run Code Online (Sandbox Code Playgroud)