我有一個使用sbt程序集插件打包爲超級jar的spark作業。 該build.sbt
指定一個可運行的主要正確地創建所得尤伯杯罐從sbt程序集運行一個超級jar導致錯誤:無法找到或加載主類
mainClass in assembly := Some("com.foo.Bar")
在組裝之後的目標,運行預期的命令:
java -jar assembly.jar
導致
Error: Could not find or load main class 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核心類,但我沒有看到我的任何包裝類的加載。
這裏可能有什麼錯?