我正在尝试在我的Mac操作系统上运行SBT。 到目前为止,我下载了Jar-Launcher并安装到/ bin文件夹中。 然后我创建了一个SBT脚本,其中包含以下几行:
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH
java -Xmx512M -jar ` $0` /bin/sbt-launch-0.7.7.jar "$@"
当我在控制台上调用SBT时,收到以下一系列错误消息:
> /bin/sbt: fork: Resource temporarily unavailable
java.io.IOException: Cannot run program "sh": error=35, Resource temporarily unavailable
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at jline.UnixTerminal.exec(UnixTerminal.java:297)
at jline.UnixTerminal.exec(UnixTerminal.java:282)
at jline.UnixTerminal.stty(UnixTerminal.java:273)
at jline.UnixTerminal.initializeTerminal(UnixTerminal.java:77)
at jline.Terminal.setupTerminal(Terminal.java:75)
at jline.Terminal.getTerminal(Terminal.java:26)
at xsbt.boot.JLine$.terminal(SimpleReader.scala:20)
at xsbt.boot.JLine$.createReader(SimpleReader.scala:22)
at xsbt.boot.SimpleReader$.<init>(SimpleReader.scala:42)
at xsbt.boot.SimpleReader$.<clinit>(SimpleReader.scala)
at xsbt.boot.Initialize$.create(Create.scala:17)
at xsbt.boot.Launch$.parsed(Launch.scala:28)
at xsbt.boot.Launch$.configured(Launch.scala:21)
at xsbt.boot.Launch$.apply(Launch.scala:16)
at xsbt.boot.Launch$.apply(Launch.scala:13)
at xsbt.boot.Boot$.runImpl(Boot.scala:24)
at xsbt.boot.Boot$.run(Boot.scala:19)
at xsbt.boot.Boot$.main(Boot.scala:15)
at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.io.IOException: error=35, Resource temporarily unavailable
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:91)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
... 21 more
这里出了什么问题?
答案 0 :(得分:2)
看起来你有一个迷路$0
(它扩展为当前进程的名称sh
)。尝试
java -Xmx512M -jar /bin/sbt-launch-0.7.7.jar "$@"
代替。这应该可以帮助你正常运转。通常的方法是像这样调用sbt
:
java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"
假设您在sbt
所在的文件夹中有shell脚本sbt-launch.jar
,因为这是dirname $0
指向的位置。