scala - 在 Scala 脚本文件中使用源路径

标签 scala file path

我正在寻找一种方法来使用由执行的 *.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,但我只是不知道如何......:/

非常感谢您的帮助。

最佳答案

脚本序言:

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

读取值:
val scriptPath = System.getenv("SCRIPT_PATH")

关于scala - 在 Scala 脚本文件中使用源路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018825/

相关文章:

C++/C : Move Directory to Another Location

python - 思想树冠 : how do I add to the PATH?

android - [android ndk]如何获取 Assets 文件夹中文件的绝对路径?

c - 文件读\写中的链表

java - 'C :\' in CMD, 文件名、目录名或卷标语法不正确

scala lift 在向导中添加模板化片段

scala - ZonedDateTime 的 Flink 序列化

scala - 为什么 "((left union right) union other)"没有关联行为?

java - 在对 Play 2.0 的 fakeRequest 的后续 Java 调用中保持 session

c - 用 C 编写和读取二进制文件