由sbt程序集打包的Scala Jar无法读取文件的相对路径,但在intelliJ中也可以正常工作

问题描述 投票:0回答:1

我在scala sbt中遇到了一个有趣的问题。任何帮助将不胜感激。

我如下读取文件

 CSVReader.open(new File(getClass.getResource("/sampleData/sample.csv").getPath))
 CSVReader.open(new File("src/main/resources/sampleData/sample.csv"))

这在intellij中非常有效,但在jar中不起作用

在Intellij中,它不会读取以下文件

CSVReader.open(new File(getClass.getResource("/sampleData/sample.csv").getPath))

文件位于src / main / resources /中

但是使用]组装时,这不起作用。

sbt cleam assemble

然后尝试给予

java java -jar /Users/sample/target/scala-2.11/Sample-assembly-1.0.jar

然后我得到以下的认识

Exception in thread "main" java.io.FileNotFoundException: file:/Users/sample/target/scala-2.11/Sample-assembly-1.0.jar!/sampleData/sample.csv (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)

我在scala sbt中遇到了一个有趣的问题。任何帮助将不胜感激。我读取文件的方式如下CSVReader.open(new File(getClass.getResource(“ / sampleData / sample.csv”)....

scala sbt sbt-assembly
1个回答
1
投票

为了从资源文件夹中获取文件,请使用以下代码:

© www.soinside.com 2019 - 2024. All rights reserved.