- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我使用 sbt 作为构建工具的 Spark 项目(在 Scala 中)中使用 joda 的 DateTimeFormat,当我尝试将它作为独立应用程序运行时,它给了我一个 java.lang.NoClassDefFoundError .这对我来说似乎很奇怪,因为当我在控制台中使用它时我没有收到任何错误,但是当我尝试将它作为应用程序运行时,它会出错
Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/format/DateTimeFormat
at com.bdcoe.poc.spark.analytics.Driver$.main(Driver.scala:35)
at com.bdcoe.poc.spark.analytics.Driver.main(Driver.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:292)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:55)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.joda.time.format.DateTimeFormat
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 9 more
这是我的 build.sbt 文件,它位于项目的根目录中:
import AssemblyKeys._
import net.virtualvoid.sbt.graph.Plugin.graphSettings
organization := "com.bdcoe.poc"
name := "spark-analytics"
scalaVersion := "2.10.4"
resolvers ++= Seq(
"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
)
libraryDependencies ++= {
val slf4jVersion = "1.7.7"
Seq(
"org.apache.spark" %% "spark-core" % "1.0.0",
"com.github.nscala-time" %% "nscala-time" % "1.2.0",
"org.scalatest" %% "scalatest" % "2.0" % "test",
"org.slf4j" % "slf4j-api" % slf4jVersion % "provided",
"org.slf4j" % "slf4j-nop" % slf4jVersion % "test",
"joda-time" % "joda-time" % "2.2",
"org.joda" % "joda-convert" % "1.2"
)
}
这是我对 joda 的导入/使用:
import org.joda.time.format.DateTimeFormat.{ forPattern => formatFor }
val dateTime = formatFor("YYYY-MM-dd HH:mm").parseDateTime _
val timeStamp: DateTime = dateTime(args(2))
关于为什么它可以在 sbt 控制台中找到 joda 但在作为独立应用程序运行时找不到的任何建议?
最佳答案
问题出在运行时的类路径上。
我注意到您正在使用 sbt-assembly
。在 build.sbt
中导入后添加此 assemblySettings
行:
import AssemblyKeys._
import net.virtualvoid.sbt.graph.Plugin.graphSettings
assemblySettings
organization := "com.bdcoe.poc"
...
如文档中所述:https://github.com/sbt/sbt-assembly . Sbt-assembly 将找到主类并使用正确配置的 list 打包 JAR。
请注意,您应该运行的任务是assembly
,而不是package
。如果您的项目中没有包含 assemblySettings
,您之前将无法运行此任务,并且由于您正在运行打包的 JAR(很可能),因此您必须使用 package< 生成它
任务,而不是 assembly
。
关于java - joda DateTimeFormat 的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620716/
我是 grails 的新手。我正在使用 joda 插件来获取日期和时间。所以我在单独的列中显示日期和时间。现在我想使用条件搜索日期。 我在 gsp 页面中使用以下代码来搜索日期。
我试图在执行更多计算之前简单地将 TimeZone 信息添加回 LocalDate。 LocalDate 来自使用 ObjectLab LocalDateCalculator 将天数添加到现有 Dat
所以我在使用 JodaTime 年表 IslamicChronology 解析日期时遇到问题,因此编写了一个小示例来演示我的问题。 代码如下: import org.joda.time.Chronol
当我启动我的应用程序时,virgo 会抛出这样的异常: [2015-09-05 11:27:53.254] TCP Connection(2)-127.0.0.1 Installation of
我使用 Spring 从 Web API rest API 检索 JSON 数据,使用 Jackson Joda 模块反序列化 ISO 日期,并将其转换为 Joda DateTime。 Spring
在 Android 设备 (7.0) 上,出现此崩溃: Fatal Exception: org.joda.time.IllegalInstantException: Illegal instant
我需要将 GMT 转换为亚利桑那时间。亚利桑那州目前有 MST(夏令时关闭)。 但是在 Joda Time DateTimeZone 代码中,MST 已映射到 America/Denver: map.
大家早上好。 我想帮助您了解如何使用 1.2.1.1 版本的 Joda Time 完成 org.joda.time.DateTime 到 java.util.Date 的转换。 为什么选择 Joda
试试这个: @Type(type = "org.jadira.usertype.moneyandcurrency.joda.PersistentMoneyAmountAndCurrency") pri
尝试使用 Joda 将包含日期字符串的 JSON 字符串反序列化为 POJO 时遇到异常。 我将 Jackson2 与 Spring 和 Robospice 一起使用。 我遇到以下异常: Could
我有一个招摇的OpenAPI YAML文件,我想使用gradle-swagger-generator-plugin生成Java 这是我的config.json { "useRxJava2": tr
我想使用以下 MDX 语句: with member [x] as now()->plusMonths(1)->withDayOfMonth(1)->minusDay(1) select [x] on
System.out.println( PeriodFormat.getDefault().print(Period.hours(1).plusMinutes(30).plusSeconds(60))
我正在使用 Joda-Time Duration 来获取两个 DateTime 之间的持续时间: DateTime startTimeDate = new DateTime(startTimeDate
当我运行以下代码片段时: import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import java.sql.Times
我正在尝试在 Joda DateTime 中转换毫秒。米利斯是 1338501600000我使用了在线转换器和其他库,所有结果都是 1338501600000 millis 是 Fri Jun 01
我尝试使用以下代码,但收到错误格式无效:“12/11/2013”: String dFrom = ps.utils.gv(request, "dFrom"); String dTo = ps.ut
我正在尝试使用 Joda-Time 的持续时间类来计算两天之间的确切天数差异。这意味着我希望结果是 25.48 天,而不是仅仅 25 天。现在我有: private static final doub
有没有隐藏的方法来获得 Joda-Time以分钟为单位的时间段(或任何其他) 现在我做的是: (period.getHours()*60 + period.getMinutes() + roundTw
有谁知道如何解析日期,例如:Mon Aug 04 16:07:00 CEST 2014使用 Joda 的 DateTime 格式化程序转换为 dd/MM/YYYY HH:MM:SS。我已经尝试过了:
我是一名优秀的程序员,十分优秀!