首页 > 解决方案 > SBT SCALA java.lang.ClassNotFoundException: javax.mail.Authenticator

问题描述

我有 SBT Scala 项目,它向用户发送包含一些信息的电子邮件。使用 IntelliJ 运行它一切正常,但我需要构建项目,放在服务器上并从终端运行。

在第一步中,我使用以下命令来构建项目:

sbt clean 编译包

之后我尝试通过以下方式运行它:

scala目标/scala-2.12/project_name_sbt_2.12-0.1.jar

然后我得到了错误:

java.lang.ClassNotFoundException: javax.mail.Authenticator
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

它是命令行应用程序,我不使用 Tomcat 和其他容器。施工简单易行。我有一个主要课程,例如:

object MyApp extends App {new SomeService().run()}

我有 build.sbt 喜欢:

libraryDependencies ++= Seq(
          "org.scalatest" %% "scalatest" % "3.0.5" % "test",
          "mysql" % "mysql-connector-java" % "5.1.16",
          "org.jsoup" % "jsoup" % "1.11.2",
          "joda-time" % "joda-time" % "2.10.1",
          "org.apache.commons" % "commons-email" % "1.5"
        )

你能给我指出解决这个问题的正确方向吗?怎么了?

标签: javascalaapacheemailsbt

解决方案


我通常使用这个插件来创建 jar。尝试将其添加到您的 plugins.sbt 文件中

并运行此命令来创建 jar:

sbt "set test in assembly := {}" assembly

然后尝试再次运行你的 jar。


推荐阅读