我该如何从一些Scala源代码创建一个jar包?

4

我该如何从一些Scala源代码中创建一个jar文件呢?我想在我的Clojure项目中使用其中的一些代码。

是否有比这个SO问题中批处理文件更简单的方法呢?

谢谢, Alex

4个回答

7
Scala在处理由其编译器生成的.class文件时并没有什么特殊之处。只需使用jar命令和c操作标志即可。但是,在运行使用Scala编译的.class文件的程序时,您需要将scala-library.jar文件放入类路径中。请注意,必须使用与编译Scala源码时使用的相同Scala Development Kit中的scala-library.jar。迄今为止,Scala生成的.class文件没有版本间二进制兼容性。

所以,如果我有一个 .class 文件,那就没问题了? - Alex Baranosky
1
当然。如果您有一个Scala的.class文件目录(层次结构),您也可以将其基本名称放在类路径中。从其他JVM代码的角度来看,它们确实并不特别。 - Randall Schulz
我在使用Intellij Clojure项目时遇到了问题,无法找到我从Scala项目中复制的.class文件。我想知道是否是因为我似乎无法在Clojure项目中找到任何.class文件。Clojure似乎正在进行某种魔法操作。 - Alex Baranosky
@Alex:你确定在复制.class文件时正确地遵守了包结构吗?尽管Scala不关心目录/包对应关系(也不关心文件名/类名对应关系),但JVM坚持要求“松散”的.class文件或JAR文件内容的目录层次结构与您的.class文件的包结构精确对应。 - Randall Schulz

4

创建 .jar 文件的一种“简单”方法是使用 simple-build-tool,它支持 package* 目标,并且设置和使用时间相对较少。


1

1

这真的很有帮助

如果您正在使用eclipse,则只需将项目导出为jar文件

转到文件 -> 导出 -> java -> 作为jar文件

稍微解释一下:

  1. typesafe安装scala eclipse环境
  2. 完成编码后,将其导出为jar文件(文件 -> 导出 -> java -> 作为jar文件)
  3. 从命令行运行java -cp path_to_dependancies:your_newly_generated_jar:. your_main_object_name。

希望对您有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接