【问题标题】:How can I package a simple single Scala file as a stand-alone jar (no sbt)?如何将简单的单个 Scala 文件打包为独立的 jar(无 sbt)?
【发布时间】:2013-04-13 05:52:19
【问题描述】:

我有一个非常简单的 Scala 文件,我需要将它发送给某人以便在没有 Scala(仅 Java)的机器上执行。它只是一个文件,对 jar 有一个依赖项(除了 scala 本身)。

我正在努力正确包装它。我没有使用 sbt 或任何东西。最简单的打包方法是什么?

【问题讨论】:

    标签: scala jar package


    【解决方案1】:

    假设你有一个文件 Test.scala

    object Test {
      def main(args: Array[String]){
        println("Hello world!")     
      }
    }
    

    用 scalac 编译它

    scalac Test.scala
    

    创建包含以下内容的文件 Manifest.txt:

    Manifest-Version: 1.0
    Created-By: 1.6.0_31 (Sun Microsystems Inc.)
    Main-Class: Test
    

    将 scala 库从您的发行版复制到当前文件夹并解压缩:

    unzip scala-library.jar
    

    执行命令:

    jar cvfm Hello.jar Manifest.txt *.class library.properties scala/
    

    发送给您的收件人。他/她将不得不执行

    java -cp Hello.jar
    

    【讨论】:

    • 超级棒,再简单不过了!非常感谢。
    • 说得太早了——这当然只有在我也向他们发送 scala-library 和 your-library jar 时才有效。我想做一个独立的罐子——没有简单的方法吗?
    • 是的,如果不重新定义类加载器,就不可能在另一个 jar 中包含一个 jar。您可以使用 Hello.jar 发送 scala-library,也可以包含分解后的 scala-library.jar。查看更新的说明。
    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 2016-01-23
    • 2018-04-21
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多