我正在寻找一种方法来使用由...执行的*.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)