使用正确版本的scala运行jar

时间:2016-07-04 03:01:13

标签: scala

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

PS:只是为了澄清一下ruby的一个例子我的意思。 我写了一些常规使用的ruby脚本。例如,要比OS更干净地应用更新。

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

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

或者说我把它嵌入了shebang系列中。

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

1 个答案:

答案 0 :(得分:1)

你可以尝试两件事:

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

2)你可以创建一个" uber jar"使用(比如说)sbt-assembly并将所有依赖项打包成一个胖jar。您可以指定在运行jar时要执行的main函数(使用JVM java -jar a-jar-to-execute.jar命令)。

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

创建jar之后,所有内容都是字节码,因此您不必担心Scala版本。只要Java(jvm)版本兼容,它就会运行。