java.io.IOException при запуске sbt из ensime? - PullRequest
4 голосов
/ 10 августа 2011

Я пробовал ensime / sbt на Mac OS. Сначала я открываю файл .scala в папке проекта create с помощью sbt в командной строке, затем запускаю ensime, и он все равно работает нормально, но всякий раз, когда я запускаю ensime-sbt (c-c c-v 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 из командной строки, и все работает оттуда (compile / run / console). Я использую sbt 0.10.1 и последние двоичные файлы на emacs24 (2011/07/24) на Mac OS.

Есть идеи, что я делаю это неправильно?

Ответы [ 5 ]

6 голосов
/ 27 августа 2011

У меня было это и после применения strace я обнаружил проблему.Функция ensime-sbt.el выполняет поиск в cwd в поиске ./project/build.properties.Найдя этот каталог / файл, он предполагает, что это корневой каталог.

Так что просто создайте этот файл, и эта проблема должна исчезнутьБыло бы неплохо, если бы ensime создал этот файл по умолчанию, так как он необходим для работы функции sbt.

5 голосов
/ 12 ноября 2011

Я получил ту же ошибку. Похоже, в этой ситуации sbt пытался создать каталог «.sbt» и «.ivy» в домашнем каталоге пользователя. Возможно, причина в том, что у пользователя ОС нет прав на запись в домашний каталог пользователя.

2 голосов
/ 22 августа 2011

Возможно, это связано с разрешением.

Я проверил источник Locks.scala https://github.com/harrah/xsbt/blob/0.10/launch/Locks.scala и предположил, что file.getParentFile.mkdirs () "не работает из-за отказа в разрешении.

Вчера я столкнулся с той же проблемой и запустил ее минуту назад, добавив sudo:

"sudo emacs xxx.scala"

1 голос
/ 03 декабря 2013

вы можете изменить свойства sbt.ivy.home и ivy.home. Итак, чтобы дополнить первое решение Joachim, вы должны установить оба системных свойства: как это: Java -Dsbt.ivy.home = / tmp / .ivy2 / -Divy.home = / tmp / .ivy2 / -jar dirname $0 / sbt-launch.jar "$ @"

надеюсь решить вашу проблему

0 голосов
/ 23 сентября 2014

Эта ошибка также возникает, когда файлы в домашнем каталоге, к которым пытается получить доступ sbt, не принадлежат пользователю, который пытается его запустить.Запустите chmod 777 на Directoris в домашнем мастере, и проблема будет решена.

...