如何使用外部java jar文件使用sbt制作jar文件

时间:2017-08-01 08:03:07

标签: java eclipse scala jar sbt

我需要使用外部java jar文件设置jar文件。

我通过以下方式制作了jar文件,同时将外部jar文件放在myProject/lib文件夹中,这是成功的:

sbt compile
sbt package

但是,执行以这种方式创建的jar文件如下

scala myProject.jar

java.lang.ClassNotFoundException例外而失败。

该项目在Eclipse Scala IDE中运行良好。

我在这里做错了什么?

3 个答案:

答案 0 :(得分:0)

您可能遇到遗漏依赖关系的问题,因为MAIN-AE仅包含您的工件。这样,在运行jar时,您需要将依赖项添加到类路径中。 如果您希望构建一个可运行的可运行jar,请改用scala package

答案 1 :(得分:0)

sbt中运行代码时,它有效吗?

在你的build.sbt中,你需要有这样的一行来在构建时从自定义文件夹加载外部jar。

unmanagedResourceDirectories in Compile += {baseDirectory.value / "lib"}

上述行在您运行时从current_folder/lib所有广告加载 sbt assemblypackage

答案 2 :(得分:0)

我解决了这个问题。问题是sbt没有清理;也就是说,它在执行sbt clean后解决了。

我们确认sbt clean后,sbt compile ; sbt packagesbt assembly都有效。

此外,我们确认无论是否在unmanagedResourceDirectories in Compile += {baseDirectory.value / "lib"}中添加build.sbt,都可以使用。

感谢您的回答。