SBT SCALA java.lang.ClassNotFoundException:javax.mail.Authenticator

时间:2018-11-30 10:26:16

标签: java scala apache email sbt

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

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

  

sbt干净的编译包

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

  

scala target / 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"
        )

您能为我指出解决该问题的正确方向吗?怎么了?

2 个答案:

答案 0 :(得分:2)

我通常使用此plugin来创建罐子。 尝试将其添加到您的plugins.sbt文件

并运行以下命令来创建jar:

::

,然后尝试再次运行您的jar。

答案 1 :(得分:0)

感谢Markus Appel,Luis Miguel Mejia Suarez和Mahmoud Hanafy。正如您所推荐的,我使用了汇编程序,它对我来说很好用。