如何运行使用 Simple Build Tool 创建的包?
我运行:
$ 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)
为什么我这样不能运行这个jar包呢?
I run:
$ 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)
Why can't I run this jar package this way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在尝试在没有 scala 运行时的情况下运行它。使用 scala 可执行文件:
或者将 scala jar 添加到类路径
You are attempting to run it without the scala runtime. Either use the scala executable:
or, add the scala jar to the classpath
我不知道你正在使用哪个版本的 sbt,也不知道你使用了什么项目设置,但通常你的 hw.scala 文件应该放在 src/main/scala 目录中,以便 sbt 找到它。另外,正如 synesso 所说,scala 运行时似乎不存在。通常 sbt 在创建新项目时只会下载这些。
我刚刚在 fres 项目中使用 sbt 0.7.3 进行了尝试,效果如下:
I don't know which version of sbt you're using, or what project setup you have used, but normally your hw.scala file should be placed in src/main/scala directory for sbt to find it. Also, as synesso remarked, the scala runtime seems to be absent. Normally sbt will just download these when creating a new project.
I just tried it using sbt 0.7.3 in a fres project, and this works: