Scala finagle应用程序从类路径读取属性文件

时间:2018-10-04 13:37:05

标签: scala classpath classloader resource-files

我们有一个使用Finagle的Scala Web应用程序,我们尝试在其中读取类路径中的一些文件。它可以在单元测试环境中工作,但是从Intellij Idea进行组装和运行时,我们会得到一个nullpointer异常,因为它无法读取文件。 我尝试了不同的版本

val s = Thread.currentThread().getContextClassLoader.getResourceAsStream("env.txt")
val parent = Thread.currentThread().getContextClassLoader.getParent()
val s2 = parent.getResourceAsStream("env.txt")
val s3 = this.getClass.getResourceAsStream("env.txt")
val s4 = ClassLoader.getSystemResourceAsStream("env.txt")

所有操作都失败,并带有nullpointer异常,我将其解释为无法在类路径上找到文件。

要运行组装好的jar,请运行:

java -classpath temp-conf -jar project-app/target/scala-2.12/cea-app.jar

有人有线索吗?

1 个答案:

答案 0 :(得分:0)

Scala sbt组件文件化;

注意:如果对Java使用-jar选项,它将忽略-cp,因此,如果您有多个JAR文件,则必须使用-cp并传递主类:java -cp“ jar1.jar:jar2.jar “主要