将 jar 添加到 scala 类路径,对象不是包的成员



我正在尝试将 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 给我带来这么多麻烦?

使用 -verbose 查看 scalac 看到的类路径,以及类的加载位置。

与其说是

答案,不如说是建议。

最新更新