我正在尝试将 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 看到的类路径,以及类的加载位置。
答案,不如说是建议。