4

MacOSでensime/sbtを試しました。まず、コマンドラインでsbtを使用して作成したプロジェクトフォルダーの.scalaファイルを開き、ensimeを実行しても正常に動作しますが、ensime-sbt(cc cv s)を実行すると、次のようになります。

java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
at xsbt.boot.Locks$.apply0(Locks.scala:34)
at xsbt.boot.Locks$.apply(Locks.scala:27)
at scala.collection.Iterable$class.$init$(Proxy.scala:32)
at xsbt.boot.Launch$ScalaProvider.<init>(Launch.scala:107)
at xsbt.boot.Launch$$anonfun$1.apply(Launch.scala:83)
at org.apache.ivy.plugins.namespace.NamespaceRule.newEntry(Cache.scala:17)
at org.apache.ivy.plugins.namespace.NamespaceRule.apply(Cache.scala:12)
at xsbt.boot.Launch.getScala(Launch.scala:85)
at xsbt.boot.Launch$.run(Launch.scala:49)
at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
at xsbt.boot.Launch$.launch(Launch.scala:68)
at xsbt.boot.Launch$.apply(Launch.scala:14)
at xsbt.boot.Boot$.runImpl(Boot.scala:24)
at xsbt.boot.Boot$.main(Boot.scala:15)
at xsbt.boot.Boot.main(Boot.scala)
    Error during sbt execution: java.io.IOException: No such file or directory

    Process sbt exited abnormally with code 1

コマンドラインからsbtを使用してみましたが、すべてがそこから機能します(コンパイル/実行/コンソール)。Mac OSのemacs24(2011/07/24)でsbt0.10.1と最新のバイナリensimeを使用しています。

私が間違っているという考えはありますか?

4

5 に答える 5

6

私はこれを持っていて、straceを適用した後、問題を見つけました。ensime-sbt.el関数は、cwdから./project/build.propertiesを検索します。このdir/fileを見つけると、これがルートディレクトリであると想定します。

したがって、このファイルを作成するだけで、この問題は解消されます。ensimeがデフォルトでこのファイルを作成した場合、これはsbt関数が機能するために必要なファイルであるため便利です。

于 2011-08-27T09:42:48.163 に答える
5

同じエラーが発生しました。この状況は、sbtがユーザーのホームディレクトリに「.sbt」および「.ivy」ディレクトリを作成しようとしたが失敗したことのようです。おそらく、その理由は、OSユーザーがユーザーのホームディレクトリに書き込む権限を持っていないためです。

于 2011-11-12T16:44:54.703 に答える
2

それはおそらく許可に関連するものです。

Locks.scala https://github.com/harrah/xsbt/blob/0.10/launch/Locks.scalaソースを確認しましたが、許可が拒否されたため、「file.getParentFile.mkdirs()」が機能しなかったと推測しました。

昨日同じ問題が発生し、sudoを追加して1分前に実行しました。

「sudoemacsxxx.scala」

于 2011-08-22T16:03:09.450 に答える
1

sbt.ivy.homeおよびivy.homeプロパティを変更できます。したがって、Joachimの最初のソリューションを拡張するには、両方のシステムプロパティを次のように設定します。java-Dsbt.ivy.home = / tmp / .ivy2 / -Divy.home = / tmp / .ivy2 / -jar dirname $0/sbt-launch。 jar "$ @"

あなたの問題を解決したいと思っています

于 2013-12-03T13:32:28.493 に答える
-1

このエラーは、sbtがアクセスしようとするホームディレクトリ内のファイルが、それを実行しようとするユーザーによって所有されていない場合にも発生します。chmod 777ホームマスターのディレクトリでを実行すると、問題が解決されます。

于 2014-09-23T14:29:37.170 に答える