首页 文章

将Play Framework项目导入IntelliJ 14.1.5错误

提问于
浏览
1

问题:

IntelliJ 不让我 import a play framework project . 当我尝试使用 SBT 打开项目时,它只显示 errors .

它真的很简单,我想做什么,但我没有使用过这些工具,我对如何解决这个问题感到有点迷茫 .

我只是想创建一个 Play framework project ,并在 IntelliJ 中编辑它,如youtube上的多个教程所示 .

下面我提供了一些关于我如何努力使其“帮助你帮助我”的信息 .

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

背景资料:

我已经从Play Framework下载并安装了 IntelliJ 14.1.5 Community Edition 和最新的avtivator - Activator 1.3.6Play 2.4.3

注意:我还下载了最新的java jdk, 1.8.0_65 并将java和activator添加到路径中 - 我正在使用 Windows 8 . 我还在 IntelliJ 中下载了 Scala 的最新插件

然后我打开 cmd 并输入“ activator ui " and opened browser at localhost:8888 as instructed in tutorials. I managed to create a " play-java-intro ”项目 . 到现在为止还挺好 .

在此之后,我尝试了一些不同的方法 .

NOTE: I have clicked "Invalidate cache / restart" each time I try something new

首先尝试

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

我收到了错误

导入SBT项目时出错:...在sbt.MainLoop $$ anonfun $ runWithNewLog $ 1.apply(MainLoop.scala:70)at sbt.MainLoop $$ anonfun $ runWithNewLog $ 1.apply(MainLoop.scala:65)at sbt .ssing.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 $运行$ 1.apply(Launch.scala:109)在xsbt.boot.Launch $ .withContextLoader(Launch.scala:129)xsbt.boot.Launch $ .run(Launch.scala:109)at xsbt . boot.Launch $$ anonfun $在xsbt.boot.Launch $ .launch(Launch.scala:117)xsbt.boot.Launch $ .apply(Launch.scala:19)申请$ 1.apply(Launch.scala:36) 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:Unsu pported major.minor版本52.0 [错误]使用'last'作为完整日志 .

在日志文件中:

[info]从C:\ play-java-intro \ project加载项目定义[info]将当前项目设置为play-java-intro(在构建文件中:/ C:/ play-java-intro /)java.lang . UnsupportedClassVersionError:com / typesafe / config / ConfigException:java.security.SecureClassLoader上java.lang.ClassLoader.defineClass(ClassLoader.java:800)的java.lang.ClassLoader.defineClass1(本机方法)中不支持的major.minor版本52.0 . java.net.URLClassLoader.access的java.net.URLClassLoader.defineClass(URLClassLoader.java:449)中的defineClass(SecureClassLoader.java:142)java.net.URLClassLoader $ 1.run(URLClassLoader)中的$ 100(URLClassLoader.java:71) .java:361)java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java .lang.ClassLoader.loadClass(ClassLoader.java:425)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)at com.typesafe.sbt.web.SbtWeb $$ anonfun $ com $ typesafe $ sbt $ web $ SbtWeb $$在com.typesafe.sbt.web.SbtWeb $$ anonfun $ com $ typesafe $ sbt $ web $ SbtWeb $$加载$ 1.apply(SbtWeb.scala:535 scala.Option.fold(Option.scala:157)位于com.typesafe.sbt的com.typesafe.sbt.web.SbtWeb $ .com $ typesafe $ sbt $ web $ SbtWeb $$ load(SbtWeb.scala:549) . web.SbtWeb $$ anonfun $ globalSettings $ 1 $$ anonfun $ apply $ 1.apply(SbtWeb.scala:143)at com.typesafe.sbt.web.SbtWeb $$ anonfun $ globalSettings $ 1 $$ anonfun $ apply $ 1.apply(SbtWeb .scala:143)at scala.Function1 $$ anonfun $ andThen $ 1.apply(Function1.scala:55)at sbt.Project $ .setProject(Project.scala:319)at sbt.BuiltinCommands $ .doLoadProject(Main.scala: 484)at sbt.BuiltinCommands $$ anonfun $ loadProjectImpl $ 2.apply(Main.scala:475)at sbt.BuiltinCommands $$ anonfun $ loadProjectImpl $ 2.apply(Main.scala:475)at sbt.Command $$ anonfun $ applyEffect $ 1 $$ anonfun $申请$ 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 $申请$ 3.apply(Command.scala:60)at sbt.Command $$ anonfun $ applyEffect $ 2 $$ anonfun $ apply $ 3.apply(Command.scala:60)at atsbt.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)在xsbt.boot.Launch $ .withContex tloader(Launch.scala:129)位于xsbt.boot.Launch $ .run(Launch.scala:109)位于xsbt.boot.Launch $$ anonfun $在xsbt.boot上应用$ 1.apply(Launch.scala:36) . 在xsbt.boot.Boot $的xsbt.boot.Launch $ .apply(Launch.scala:19)xsbt.boot.Boot $ .runImpl(Boot.scala:44)上启动$ .launch(Launch.scala:117) . .main(Boot.scala:20)at xsbt.boot.Boot.main(Boot.scala)[error] java.lang.UnsupportedClassVersionError:com / typesafe / config / ConfigException:不支持的major.minor版本52.0 [错误]使用'最后'为完整的日志 .

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

我试图选择并取消选择SBT中的所有选项 - Use auto-importDownload sources and docs 等 . 但仍然是相同的错误消息 .

第二次尝试

类似于第一次尝试,但我点击了localhost:8888中激活器内的“ Create IntelliJ project ”,然后尝试以与 First try 相同的方法导入项目 .

第三次尝试

Open project 然后选择根目录,我设法稍微导入项目,但是它将项目文件移动到了"project backup",我收到了很多警告,说它是基于过时的版本 . 不太明白这一点 .

第四次尝试

Create project from existing sourcesactivator 创建项目后,我在没有警告的情况下导入了项目 .

但是当我打开 Application.java (或任何其他文件)时,该文件中的所有内容都会被加下划线,并显示类似于“ Cannot resolve symbol 'Result' ”的错误,并且我无法编译任何内容 .

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


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

2 回答

  • 3

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

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

  • 7

    来自文档: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,请检查两次

相关问题