sbt:找不到启动器jar/bin/sbt-launch.jar



我下载了sbt-1.2.6.zip以便在Linux上使用。我拉开它的拉链,走到垃圾箱目录,键入sbt。我得到这个错误:

Could not find launcher jar: ./bin/sbt-launch.jar

该文件与sbt位于同一目录中。

我在sbt支持页面上被告知:

要获得社区支持,请在StackOverflow上询问标签为"sbt"。

注意:这个错误的另一个问题的答案是"删除所有我的.bashrc文件中的LD_LIBRARY_PATH元素"。不确定LD_LIBRARY_PATH用于查找jar文件,而我的LD_LIBRARY_PATH是空的,而不是"装满垃圾"。

问题似乎只与sbt和启动器jar的路径有关。您不需要触摸LD_LIBRARY_PATH

首先,许多linux发行版和Mac OSX(brew(允许您直接从包管理器(如aptdnfyum等(安装sbt,而无需手动下载。如果你的发行版有它,并且版本是最新的,你可以用一个命令来安装它

如果失败或您想手动安装,则有多种选择。您需要了解的是,SBT是一个shell runner脚本,它反过来调用jar文件。

一种安装方法是使用这样的脚本:

#!/bin/bash
# Downloads the latest version of SBT runner script which in turn downloads
# SBT launcher JAR and provides lots of convenience methods.
curl -s https://raw.githubusercontent.com/paulp/sbt-extras/master/sbt > sbt && chmod 0755 sbt

从这里下载。

另一个选项与您所做的类似,是将所有内容解压缩到某个bin目录。如果bin目录在PATH中,那么键入sbt应该有效,如果不是,那么您必须将cd放入该目录并键入./sbt

根据您得到的错误,您应该位于之上的目录中,即cd ..。这是因为它在您当前的目录./bin/sbt-launch.jar中查找bin目录。尽管您也可以在脚本中更改该路径,为其提供完整路径或相对于主目录的路径,因此它总是有效的,但如果sbt在您的路径上,您可能不必这样做。

最后,您需要确保sbt脚本位于PATH上,因为您希望从项目目录中运行此命令。从这个开始,如果你有任何错误,请发布。

如果已使用brew安装sbt,则sbt-launch.jar位于以下位置

➜  ~ ls /usr/local/Cellar/sbt/1.4.7/libexec/bin/sbt-launch.jar
/usr/local/Cellar/sbt/1.4.7/libexec/bin/sbt-launch.jar

如果您像我一样使用brew安装特定版本的sbt,那么它位于下面这样的文件夹中-

➜  ~ ls /usr/local/Cellar/sbt@0.13/0.13.18_1/libexec/bin/sbt-launch.jar
/usr/local/Cellar/sbt@0.13/0.13.18_1/libexec/bin/sbt-launch.jar

如您所见,sbt-launch.jar安装在<sbt-home>/libexec/bin/sbt-launch.jar文件夹中。

如果您手动安装了sbt,但现在忘记了安装sbt的文件夹,那么您可以通过以下命令列出该文件夹-

➜  ~ which sbt
sbt: aliased to /usr/local/Cellar/sbt@0.13/0.13.18_1/bin/sbt

最新更新