【问题标题】:Running a jar with the right version of scala使用正确版本的 scala 运行 jar
【发布时间】:2016-07-04 03:01:13
【问题描述】:

我有一个可以使用 sbt 运行的 scala 项目。现在我想将它作为一个独立的应用程序执行。如何使用 scala 命令运行它并确保所有内容的正确版本,尤其是 scala-library 和 JVM?

PS:只是为了澄清我所说的 ruby​​ 示例的意思。 我写了一些我经常使用的 ruby​​ 脚本。例如,要比操作系统更干净地应用更新。

当我编写脚本时,我使用了 ruby​​ 1.8.3。 (这里以版本号为例。)我使用命令行ruby my_script

现在版本是 ruby​​ 2.0.1。由于语言更改,该脚本将不会在此 ruby​​ 下运行。所以我使用命令行ruby1.8.3 my_script

或者更确切地说,我将它嵌入到 shebang 行中。

同样,我想使用scala my_jar.jar 运行一个 jar,但它是使用 scala 版本 2.8.3 构建的,并且不会使用该命令运行。如何让 scala 使用正确的版本?

【问题讨论】:

    标签: scala


    【解决方案1】:

    您可以在这里尝试两件事:

    1) sbt-native-packager 将创建一个可执行文件。例如,您可以创建 RPM 或 Debian 软件包。

    2) 您可以使用(比如)sbt-assembly 创建一个“超级 jar”,并将所有依赖项打包到一个胖 jar 中。可以指定运行jar时执行的main函数(使用JVMjava -jar a-jar-to-execute.jar命令)。

    以上两个都是非常活跃和广泛使用的 SBT 插件。

    在您创建 jar 之后,一切都是字节码,此时您无需担心 Scala 版本。只要 Java (jvm) 版本兼容,它就会运行。

    【讨论】:

    • 我正在尝试使用 sbt-assembly。如果我误解了自己,请查看我的附加评论。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2011-04-10
    • 2020-04-24
    • 2015-09-14
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多