当前位置: 首页 > 知识库问答 >
问题:

在scala中获取jar系统路径

郑狐若
2023-03-14

我试图得到系统路径,其中jar位于运行时。

下面的代码在REPL中工作,但是,如果我使用sbt组装jar,它会失败,

object tboj {
  def main(args: Array[String]) {
    def getCurrentDirectory = new java.io.File(".").getCanonicalPath
    val pwd = getCurrentDirectory
    println(pwd)
  }
}

SBT错误如下,

运行java.lang.运行时异常:未检测到主类。在scala.sys.package$。错误(package.scala:27)[跟踪]堆栈跟踪抑制:运行最后一次编译:运行完整的输出。[错误](编译:运行)未检测到主类。[错误]总时间:0秒,4月13日2016 5:15:40下午完成

共有3个答案

淳于枫
2023-03-14

println(getClass.get保护omain.getCodeSource.get位置)

隆长卿
2023-03-14

这将是系统。getProperty(“user.dir”)

在我的项目中为我解决本地lib工作。

督德泽
2023-03-14

如果您想使用类名找到Jar的位置,请使用以下方法-

import org.apache.hadoop.fs.FileSystem
classOf[FileSystem].getProtectionDomain().getCodeSource().getLocation().toURI().getPath())

如果你有实例,那么使用以下方式-

new ListBuffer[String]().getClass.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
 类似资料:
  • 我只是在这个链接上设置一个kubenetes集群 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#multi-platform 我检查kubectl获取节点,然后主节点是就绪的,但是当我访问链接 https://k8s-master-ip:6443/ 它显示错误:用户“系统:匿名”无法获取路径“/”。我错过了

  • 问题内容: 这个问题已经在这里有了答案 : 查找从何处加载Java类 (11个答案) 2年前关闭。 给定使用命令执行的类,是否有任何方法可以在运行时从此类的代码确定其当前文件系统的位置? 例如以下课程: 是否有任何方法可以在刚刚被调用的MyClass.class文件的文件系统中获取并打印正确的路径? 同样,如果我从命令调用jar文件,是否有任何方法可以从该jar内的类中获取jar文件的路径? PS

  • 问题内容: 我的情况很简单:我需要播放警告信号并希望确保用户会听到它,因此我想检查系统音量。 如何找出当前的系统容量是多少? 问题答案: Swift更新 音频会话可以提供输出音量(iOS> = 6.0)。

  • cmf_get_option($key) 功能 获取系统配置,通用 参数 $key: string 配置键值,都小写 返回 array 配置信息

  • X1.0新增 sp_get_host() 功能: 返回带协议的域名 参数: 无 返回: 类型string 带协议的域名,如http://www.thinkcmf.com

  • 问题内容: 在对gcloud和docker进行了最新更新之后,我无法访问我的Google容器存储库中的图像。我在本地运行时:按照更新gcloud之后的说明,我收到以下消息: 运行收益。 我没有其他与gcloud相关的路径问题,并且我一生无法解决如何将docker-credential- gcloud安装/添加到路径。这是我安装的(通过显示): 我也有Docker CE版本18.03.0-ce-ma