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框架应该是一件相当容易的事情。
答案 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,请检查两次