Intellij无法导入SBT项目

3
我正在尝试将sbt项目导入到IntelliJ 14中,但当我打开这个项目时出现以下错误:
错误: 导入SBT项目时出错:...
at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
    at sbt.MainLoop$.runLogged(MainLoop.scala:24)
    at sbt.StandardMain$.runManaged(Main.scala:53)
    at sbt.xMain.run(Main.scala:28)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:19)
    at xsbt.boot.Boot$.runImpl(Boot.scala:44)
    at xsbt.boot.Boot$.main(Boot.scala:20)
    at xsbt.boot.Boot.main(Boot.scala)
[error] java.io.FileNotFoundException: /home/karthik/Play2.4/Directory/target/.history 
(Permission denied)
[error] Use 'last' for the full log.

请查看完整日志:/home/karthik/.IdeaIC14/system/log/sbt.last.log

这是我的sbt.last.log文件。

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support 
was removed in 8.0
[info] Loading project definition from /home/karthik/Play2.4/Rocket_Singh/project
[info] Set current project to Rocket_Singh 
(in build file:/home/karthik/Play2.4/Rocket_Singh/)
[Rocket_Singh] $ java.io.FileNotFoundException: 
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
    at jline.console.history.FileHistory.flush(FileHistory.java:87)
    at sbt.JLine.readLineWithHistory(LineReader.scala:28)
    at sbt.JLine.sbt$JLine$$unsynchronizedReadLine(LineReader.scala:19)
    at sbt.JLine$$anonfun$readLine$1.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$readLine$1.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$withJLine$1.apply(LineReader.scala:114)
    at sbt.JLine$$anonfun$withJLine$1.apply(LineReader.scala:112)
    at sbt.JLine$.withTerminal(LineReader.scala:86)
    at sbt.JLine$.withJLine(LineReader.scala:112)
    at sbt.JLine.readLine(LineReader.scala:16)
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:164)
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:160)
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:29)
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:29)
    at sbt.Command$.process(Command.scala:92)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98)
    at sbt.State$$anon$1.process(State.scala:184)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:98)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.MainLoop$.next(MainLoop.scala:98)
    at sbt.MainLoop$.run(MainLoop.scala:91)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:70)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:65)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
    at sbt.MainLoop$.runLogged(MainLoop.scala:24)
    at sbt.StandardMain$.runManaged(Main.scala:53)
    at sbt.xMain.run(Main.scala:28)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:19)
    at xsbt.boot.Boot$.runImpl(Boot.scala:44)
    at xsbt.boot.Boot$.main(Boot.scala:20)
    at xsbt.boot.Boot.main(Boot.scala)
[error] java.io.FileNotFoundException: 
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)
[error] Use 'last' for the full log.

1
那么,你能否包含来自/home/karthik/.IdeaIC14/system/log/sbt.last.log的完整日志记录呢? :) - Tyth
2个回答

2
/home/karthik/Play2.4/Directory/target/.history (Permission denied)
/home/karthik/Play2.4/Rocket_Singh/target/.history (Permission denied)

这些信息表明您没有权限访问这些路径。请检查运行IntelliJ的用户是否对.history具有写入权限。在Linux中,可以通过以下方式进行检查:

cd /home/karthik/Play2.4/Directory/target/
ls -l

如果.history是一个文件,响应将会是类似以下内容:
-rw-rw-r-- 1 karthik karthik  961 Aug 30 18:26 .history

使用rw表示读写权限,而2个名称分别是用户名和组名


当我检查权限时,像这样。现在我需要做什么?-rw-r--r-- 1 root root 29 Aug 31 12:50 .history - Karthik
1
这意味着只有root用户才能在此文件夹中写入。我假设您已经以karthik的身份登录并运行了Intellij。您为什么要将这些文件的所有者设置为root?我建议将Play2.4文件夹的所有权更改为您的用户名,例如:sudo chown -R karthik:karthik /home/karthik/Play2.4。我不建议以root用户身份运行Intellij。 - Manos Nikolaidis

0

我也遇到了同样的问题,正如Manos Nikolaidis所建议的那样,问题出在文件权限上。 为了快速解决这个问题,我尝试使用root用户权限运行idea,并成功地导入了项目。

我使用的命令在这里(从idea root/bin目录):

sudo ./idea.sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接