将Play Framework项目导入IntelliJ 14.1.5错误

时间:2015-10-22 18:20:03

标签: scala intellij-idea playframework sbt playframework-2.4

问题:

IntelliJ 不允许我导入 播放框架项目。当我尝试使用 SBT 打开项目时,它只显示错误

我想要做的事情非常简单,但我还没有使用过这些工具,而且我对如何解决这个问题感到有点迷失。

我只是想创建一个 Play框架项目,并在 IntelliJ 中进行编辑,如youtube上的多个教程所示。

下面我提供了一些有关我如何努力使其工作的信息,以帮助我帮助我#34;。

我真的希望有一些我看不到的简单解决方案!

背景信息:

我已经下载并安装了 IntelliJ 14.1.5社区版以及Play Framework的最新版本 - Activator 1.3.6 播放2.4.3

注意:我还下载了最新的java jdk, 1.8.0_65 ,并将java和激活器添加到路径中 - 我使用 Windows 8 。我还在 IntelliJ

中下载了 Scala 的最新插件

然后我打开 cmd 并输入" 激活器ui "并按照教程中的说明在localhost:8888打开浏览器。我设法创建了一个" play-java-intro "项目。到目前为止,非常好。

在此之后,我尝试了几种不同的方法。

注意:我已点击"无效缓存/重启"每次我尝试新的东西

首先尝试

在通过激活器创建项目后,我尝试打开项目。我选择了项目的根目录并选择了SDK jdk 1.7 (已尝试过1.8)。

我收到了错误

  

导入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.lang.UnsupportedClassVersionError:com / typesafe / config / ConfigException :不支持的major.minor版本52.0 [错误]使用'最后'完整的日志。

在日志文件中:

  

[info]从C:\ play-java-intro \ project中加载项目定义   [info]将当前项目设置为play-java-intro(在构建文件中:/ C:/ play-java-intro /)   java.lang.UnsupportedClassVersionError:com / typesafe / config / ConfigException:不支持的major.minor版本52.0       at java.lang.ClassLoader.defineClass1(Native Method)       at java.lang.ClassLoader.defineClass(ClassLoader.java:800)       at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)       at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)       在java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)       在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)       在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)       at java.security.AccessController.doPrivileged(Native Method)       在java.net.URLClassLoader.findClass(URLClassLoader.java:354)       at java.lang.ClassLoader.loadClass(ClassLoader.java:425)       at java.lang.ClassLoader.loadClass(ClassLoader.java:358)       在com.typesafe.sbt.web.SbtWeb $$ anonfun $ com $ typesafe $ sbt $ web $ SbtWeb $$ load $ 1.apply(SbtWeb.scala:535)       在com.typesafe.sbt.web.SbtWeb $$ anonfun $ com $ typesafe $ sbt $ web $ SbtWeb $$ load $ 1.apply(SbtWeb.scala:535)       在scala.Option.fold(Option.scala:157)       在com.typesafe.sbt.web.SbtWeb $ .com $ typesafe $ sbt $ web $ SbtWeb $$ load(SbtWeb.scala:549)       在com.typesafe.sbt.web.SbtWeb $$ anonfun $ globalSettings $ 1 $$ anonfun $ apply $ 1.apply(SbtWeb.scala:143)       在com.typesafe.sbt.web.SbtWeb $$ anonfun $ globalSettings $ 1 $$ anonfun $ apply $ 1.apply(SbtWeb.scala:143)       在scala.Function1 $$ anonfun $ andThen $ 1.apply(Function1.scala:55)       在sbt.Project $ .setProject(Project.scala:319)       在sbt.BuiltinCommands $ .doLoadProject(Main.scala:484)       在sbt.BuiltinCommands $$ anonfun $ loadProjectImpl $ 2.apply(Main.scala:475)       在sbt.BuiltinCommands $$ anonfun $ loadProjectImpl $ 2.apply(Main.scala:475)       at sbt.Command $$ anonfun $ applyEffect $ 1 $$ anonfun $ apply $ 2.apply(Command.scala:58)       at sbt.Command $$ anonfun $ applyEffect $ 1 $$ anonfun $ apply $ 2.apply(Command.scala:58)       at sbt.Command $$ anonfun $ applyEffect $ 2 $$ anonfun $ apply $ 3.apply(Command.scala:60)       at sbt.Command $$ anonfun $ applyEffect $ 2 $$ anonfun $ apply $ 3.apply(Command.scala:60)       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)       在sbt.MainLoop $$ anonfun $ 1.apply(MainLoop.scala:98)       在sbt.MainLoop $$ anonfun $ 1.apply(MainLoop.scala:98)       在sbt.ErrorHandling $ .wideConvert(ErrorHandling.scala:17)       at sbt.MainLoop $ .next(MainLoop.scala:98)       at sbt.MainLoop $ .run(MainLoop.scala:91)       在sbt.MainLoop $$ anonfun $ runWithNewLog $ 1.apply(MainLoop.scala:70)       在sbt.MainLoop $$ anonfun $ runWithNewLog $ 1.apply(MainLoop.scala:65)       在sbt.Using.apply(Using.scala:24)       在sbt.MainLoop $ .runWithNewLog(MainLoop.scala:65)       at sbt.MainLoop $ .runAndClearLast(MainLoop.scala:48)       在sbt.MainLoop $ .runLoggedLoop(MainLoop.scala:32)       在sbt.MainLoop $ .runLogged(MainLoop.scala:24)       在sbt.StandardMain $ .runManaged(Main.scala:53)       在sbt.xMain.run(Main.scala:28)       在xsbt.boot.Launch $$ anonfun $ run $ 1.apply(Launch.scala:109)       在xsbt.boot.Launch $ .withContextLoader(Launch.scala:129)       在xsbt.boot.Launch $ .run(Launch.scala:109)       在xsbt.boot.Launch $$ anonfun $ apply $ 1.apply(Launch.scala:36)       在xsbt.boot.Launch $ .launch(Launch.scala:117)       在xsbt.boot.Launch $ .apply(Launch.scala:19)       at xsbt.boot.Boot $ .runImpl(Boot.scala:44)       at xsbt.boot.Boot $ .main(Boot.scala:20)       在xsbt.boot.Boot.main(Boot.scala)   [error] java.lang.UnsupportedClassVersionError:com / typesafe / config / ConfigException:不支持的major.minor版本52.0   [错误]使用' last'完整的日志。

我试图搜索这意味着什么,但我在谷歌上找到的答案不适用于我的问题。

我尝试选择并取消选择SBT中的所有选项 - 使用自动导入下载源和文档等。但仍然是相同的错误消息。

第二次尝试

与首次尝试类似,但我点击了" 创建IntelliJ项目"在localhost:8888内部激活器,然后尝试使用与首次尝试相同的方法导入项目。

第三次尝试

打开项目并选择根目录,我设法稍微导入项目,但是它将项目文件移动到"项目备份"而且我收到很多警告说它是基于一个过时的版本。没有理解这一点。

第四次尝试

激活器创建项目后,

从现有来源创建项目,我在没有警告的情况下导入了项目。

但是,当我打开 Application.java (或任何其他文件)时,该文件中的所有内容都会出现红色下划线,并显示类似于&#34的错误; 无法解析符号'结果' "我无法编译任何东西。

我尝试打开模块并单击 + 并添加Scala作为模块,但它似乎没有任何区别。

我真的希望有人可以帮助我,因为安装IntelliJ + Play框架应该是一件相当容易的事情。

2 个答案:

答案 0 :(得分:7)

问题是即使IntelliJ设置为使用JDK8,SBT进程也使用JDK7(您可以确认使用JVisualVM等工具查看它。不确定他们的逻辑是什么来获取SBT的JVM,但你可以在导入项目时强制它:

这个版本的想法为我解决了这个问题:

答案 1 :(得分:3)

来自文档:https://www.playframework.com/documentation/2.4.x/Highlights24

  

Play 2.4现在需要JDK 8

所以你绝对必须只使用JDK 8.

  

不受支持的major.minor版本52.0

表示您尝试打开使用JDK 8编译的项目,但IDE中的设置是JDK 7(或更低版本)

我的命题 - 如果你真的在intelliJ中使用JDK8,请检查两次