从 sbt 程序集运行 uber jar 会导致错误:无法找到或加载主类
2022-09-02 23:26:56
我有一个使用sbt汇编插件打包为超级罐的spark作业。指定一个可运行的 main 作为生成的 uber-jar 的目标build.sbt
mainClass in assembly := Some("com.foo.Bar")
正确创建程序集后,运行预期的命令:
java -jar assembly.jar
结果
错误:找不到或装入主类 com.foo.Bar
使用替代方法,如给出相同的错误消息。java -cp assembly.jar com.foo.Bar
然后,我将uber-jar的内容提取到一个新目录中。我可以看到我的目录和文件。从我尝试的解压缩目录的根目录:com/foo/
Bar.class
java -cp . com.foo.Bar
我得到了一个正确的结果。
进一步尝试找到错误的原因,我尝试了:
java -verbose -jar assembly.jar
我可以看到正在加载的java核心类,但我没有看到任何打包的类被加载。
这里可能出了什么问题?