当前位置: 首页 > 知识库问答 >
问题:

sbt运行时类路径与compile类路径不匹配,导致java.lang.NoClassDefoundError

赫连法
2023-03-14

根据“show Runtime:fullclasspath”,运行时类路径只包含target/scala-2.11/classes和~/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar。编译:FullClasspath包含~/.ivy2/cache下的所有libraryDependencies jar位置。这是为什么?我正在sbt运行时获得java.lang.NoClassDefoundError。

build.sbt:

name := "my-server"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies ++= List(
  "com.typesafe.slick" %% "slick" % "3.1.0" % "provided",
  "com.twitter.finatra" %% "finatra-http" % "2.1.0" % "provided",
  "com.roundeights" %% "hasher" % "1.2.0" % "provided",
  "com.twitter" %% "util-logging" % "6.29.0" % "provided"
)

resolvers +=
  "Twitter" at "http://maven.twttr.com"

resolvers ++= Seq("RoundEights" at "http://maven.spikemark.net/roundeights")

sbt运行结果:

Exception in thread "main" java.lang.NoClassDefFoundError: com/twitter/logging/Logger

sbt版本0.13.8

共有1个答案

澹台新知
2023-03-14

删除“provided”是这里的修复方法--我错误地使用它来解决依赖项的不明确的子版本(从freenode#scala归功于pfn)

 类似资料:
  • 这些配置允许你对许多与URL映射和路径匹配有关的设置进行定制。关于所有可用的配置选项,请参考PathMatchConfigurer类的API文档。 下面是采用MVC Java编程配置的一段代码: @Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter {

  • 问题内容: 我收到这个错误 错误:java:致命错误:在类路径或引导类路径中找不到包java.lang 当我尝试构建/编译 任何 项目时,在IntelliJ中使用。这里应该说明的是,NetBeans,Eclipse甚至javac命令行都可以编译,构建和执行同一项目而不会出错。这就是为什么我怀疑问题出在IntelliJ上,其他所有IDE都可以正常工作的原因。 在IntelliJ中,我已经: 重新启动

  • 我似乎找不到任何关于在运行时扫描所有可用类(用于接口、注释等)是否仍然可行的信息,就像Spring、Reflections和许多其他框架和库当前所做的那样,面对与Jigsaw相关的类加载方式的更改。 编辑:这个问题是关于扫描实际的物理文件路径以查找类。另一个问题是动态加载类和资源。这是相关的,但不是重复的。 最新消息:Jetty项目已就此提出了一项标准化API的JEP提案。如果你有办法帮助实现这一

  • 问题内容: 想知道不指定classpath选项时默认的classpath是什么吗? 问题答案: 当前的工作目录()。 从Java™教程中:PATH和CLASSPATH: 类路径 的 默认值为“。” ,表示仅搜索当前目录。指定CLASSPATH变量或-cp命令行开关将覆盖此值。 这包括子目录吗? 不,在类路径中没有条目是“递归的”。您必须明确列出每个子目录(或jar)。但是,如果您有一个表示clas

  • 首先,我不完全确定这是正确的问题。基本上,我的最终目标是生成一个可以操作一组。docx文件的程序,以便对每个文件进行小的更改。在我看来,docx4j是实现这一目标的最佳方式。但是,我从来没有使用过提供的库之外的库。我首先试图破译手册中提供的所有信息,然后告诉我需要SLF4J才能使用Docx4J。 从这一点来看,我想我做错了什么。我很确定我知道我想写的程序背后的伪逻辑,但我不确定如何写它。我还没有做

  • 我正在尝试使用node-java包。我需要从node.js运行小的java代码。首先,我运行命令