【问题标题】:NoClassDefFoundError: scala/ScalaObject in mixed Scala/Java projectNoClassDefFoundError:混合 Scala/Java 项目中的 scala/ScalaObject
【发布时间】:2011-12-08 13:18:18
【问题描述】:

背景:我是一名 C# 开发人员,但我的下一个项目需要在 JVM 上。我研究过 Scala,我认为它可以让我在 C# 中尽我所能(Lambdas、推断类型、函数式样式等)。我会将自己归类为一个非常新手的 Java 开发人员......尤其是在使用 IDE 等方面。

我有一个似乎可以运行的 Scala 项目... 我做了一个Java项目并引用了Scala项目 编辑器似乎知道 Scala 项目中的类(提前输入等)

当我尝试运行 Java 项目时,我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at learning_scala.java.Main.main(Main.java:12)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

很明显,Java/Scala 编译出了问题,但我不知道如何解决(我缺乏 Java 经验是这里的主要罪魁祸首)

我正在使用带有官方 Scala 插件的 Eclipse...所有这些在 2-3 天前都是最新的。

谢谢

【问题讨论】:

  • 这意味着 Eclipse 没有加载 Scala 库 (scala-library.jar)。我不知道如何在 Eclipse 中解决这个问题;在命令行上,将 jar 添加到类路径:-cp /path/to/scala/lib/scala-library.jar。希望 Eclipse 用户可以提供帮助。附言在 lambda、推断类型等方面,Scala 可以比 C# 做得更多——我希望回去不会太难!
  • Scala 是我一直有兴趣学习的第一个基于 JVM 的语言。部分原因还在于强迫自己学习新的东西...... C# 和 C++ 在 10 年后对我来说非常熟悉,我需要挑战自己去做一些新的事情。

标签: java eclipse scala classpath scala-ide


【解决方案1】:

您需要将 scala-library.jar 库添加到您的类路径中。您可以通过几种不同的方式做到这一点,但最简单的方法是将文件复制到您的项目中(将其拖放到您的 eclipse 包资源管理器中)。接下来,右键单击该文件并选择添加到构建路径。这会将 scala jar 添加到您的类路径中。这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 2011-05-25
    • 2016-02-23
    • 2021-10-25
    • 1970-01-01
    • 2017-10-03
    • 2012-01-11
    • 2014-08-18
    相关资源
    最近更新 更多