【问题标题】:Adding jar to scala classpath, object is not member of package将jar添加到scala类路径,对象不是包的成员
【发布时间】:2014-04-01 21:05:52
【问题描述】:

我正在尝试将 kyro 序列化与 scala 一起使用。我已将 .jar 包含在类路径中。

scalac -classpath *.jar *.scala

这给了我一个关于依赖库的错误:

$ scalac -classpath "*.jar" *.scala
warning: Class org.objenesis.strategy.InstantiatorStrategy not found - continuing with a stub.
error: error while loading Kryo, class file 'kryo-2.23.1-SNAPSHOT.jar(com/esotericsoftware/kryo/Kryo.class)' is broken
(class java.lang.NullPointerException/null)
one warning found
one error found

我也包括了这些:

scalac -classpath "*.jar:lib/*.jar" *.scala

现在我有这个错误:

$ scalac -classpath "*.jar:lib/*.jar" *.scala
test.scala:2: error: object esotericsoftware is not a member of package com
import com.esotericsoftware.kryo.Kryo
       ^
test.scala:7: error: not found: type Kryo
        val kryo = new Kryo
                       ^
two errors found

尝试使用 .jar 编译 java 文件很好:

javac -classpath *.jar *.java

为什么 scala 给我带来这么多麻烦?

【问题讨论】:

  • 曾经考虑过使用sbt?我专门将 sbt 用于我的项目。它为您节省了像您尝试那样管理 jar 的麻烦。
  • 通常我将 maven 用于大型项目。我只是想写一个小的单文件脚本来测试这个库中的一些东西。我希望它会像在 java 中那样快速和简单......

标签: scala jar import


【解决方案1】:

使用-verbose 查看 scalac 看到的类路径,以及从哪里加载类。

更多的是建议而不是答案。

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 2021-03-31
    相关资源
    最近更新 更多