java - 使用 java -jar 运行 scala 应用程序

标签 java scala jar

我在使用 java.util. ​​时遇到了一些问题。看看吧。

sebastian@sebastian-desktop:~/scaaaaaaaala$ java -cp/home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8 .0.RC3.jar:target/scaaaaaaaaaala-1.0.jar scaaaaaaa.App

Hello World!

这很酷,对,但是怎么样:

sebastian@sebastian-desktop:~/scaaaaaaaala$ java -cp/home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8 .0.RC3.jar -jar 目标/scaaaaaaaala-1.0.jar

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Application
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
 at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 at scaaalaaa.App.main(App.scala)
Caused by: java.lang.ClassNotFoundException: scala.Application
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 ... 13 more

什么鬼?知道为什么第一个有效而不是第二个吗?我如何 -jar 我的 scala??

先谢谢你了,兄弟。

最佳答案

如果您定义 -jar,则 -classpath 将被忽略:

Java manual:

-jar When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.

您可以在 Manifest metadata 中定义类路径依赖项。 .

启动应用程序的最简单方法是使用 scala 脚本:

scala -classpath target/scaaaaaaaaala-1.0.jar scaaalaaa.App Hello World!

关于java - 使用 java -jar 运行 scala 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930146/

相关文章:

java - RxJava 异步订阅

java - Google 身份验证服务迁移 - 如何确保该过程成功完成?

scala - 在 Scala 中表达有状态过滤器的功能方法

scala - 使用 Spark Dataframe scala 将多个不同列转换为 Map 列

scala - Scala 案例类可以排除 setter 吗?

用于注册产品的 Java 客户端-服务器通信

java - 通过 Facebook ID 进行 Facebook FQL 查询

java - 在 Android 项目中保护类文件

java - 如何从命令行运行 json-schema-validator

java - 如何使用来自多个模块的依赖项构建 Uber jar