我跑:
$ echo 'object Hi { def main(args: Array[String]) { println("Hi!") } }' > hw.scala
$ sbt
> warn
Set log level to warn
> run
Hi!
> package
$ java -jar target/scala_2.7.7/test_2.7.7-1.0.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样运行这个jar包?
您正在尝试在没有 scala 运行时的情况下运行它。使用 scala 可执行文件:
scala -jar target/scala_2.7.7/test_2.7.7-1.0.jar
Run Code Online (Sandbox Code Playgroud)
或者,将 scala jar 添加到类路径
java -cp target/scala_2.7.7/test_2.7.7-1.0.jar:$PATH_TO_SCALA_JAR Hi
Run Code Online (Sandbox Code Playgroud)