gpt4 book ai didi

java - 尝试触发提交时出现 FileNotFound 异常

转载 作者:行者123 更新时间:2023-11-30 06:36:48 25 4
gpt4 key购买 nike

我有一个 Spark jar,我正在尝试将其提交到本地 Spark 实例。 jar 是一个包,所有配置文件都按照 maven 结构出现在/resources 文件夹中。

以下是异常(exception)情况:

java.io.FileNotFoundException: file:/Users/prime/Desktop/TibcoMsgConsumer-1.0-SNAPSHOT.jar!/config.properties (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)

在上述异常中,一个可观察到的事情是 !标记存在于 jar 的末尾:TibcoMsgConsumer-1.0-SNAPSHOT.jar!/

如果我从此 jar 中删除 Spark 相关部分(Java Spark 上下文)并将其设为普通的 Java Jar,我不会遇到任何问题。这里可能出了什么问题?

我反编译了该类,以下是加载文件的方式:

ClassLoader classLoader = getClass().getClassLoader();
File file = new File(this.classLoader.getResource("config.properties").getFile());
private Properties properties = this.propLoader.initProp(this.file);

这是我运行该作业的方式: /spark-submit --conf spark.shuffle.consolidateFiles=true --verbose --class "ril.bigdata.com.Main" --master local[*] ~/Desktop/TibcoMsgConsumer-1.0-SNAPSHOT.jar

我错过了什么?

最佳答案

! 之后的内容都在 jar 内。它不是在 resources 中查找 config.properties,而是在 JAR 的根目录中搜索。

File file = new File(this.classLoader.getResource("resources/config.properties").getFile());

这应该可以正常工作。

此外,JavaDoc for getResource

关于java - 尝试触发提交时出现 FileNotFound 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45084887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com