我需要使用外部java jar文件设置jar文件。
我通过以下方式制作了jar文件,同时将外部jar文件放在myProject/lib
文件夹中,这是成功的:
sbt compile
sbt package
但是,执行以这种方式创建的jar文件如下
scala myProject.jar
因java.lang.ClassNotFoundException
例外而失败。
该项目在Eclipse Scala IDE中运行良好。
我在这里做错了什么?
答案 0 :(得分:0)
您可能遇到遗漏依赖关系的问题,因为MAIN-AE
仅包含您的工件。这样,在运行jar时,您需要将依赖项添加到类路径中。
如果您希望构建一个可运行的可运行jar,请改用scala package
。
答案 1 :(得分:0)
在sbt
中运行代码时,它有效吗?
在你的build.sbt中,你需要有这样的一行来在构建时从自定义文件夹加载外部jar。
unmanagedResourceDirectories in Compile += {baseDirectory.value / "lib"}
上述行在您运行时从current_folder/lib
所有广告加载
sbt assembly
或package
。
答案 2 :(得分:0)
我解决了这个问题。问题是sbt没有清理;也就是说,它在执行sbt clean
后解决了。
我们确认sbt clean
后,sbt compile ; sbt package
和sbt assembly
都有效。
此外,我们确认无论是否在unmanagedResourceDirectories in Compile += {baseDirectory.value / "lib"}
中添加build.sbt
,都可以使用。
感谢您的回答。