【问题标题】:Import a Play Framework project to IntelliJ 14.1.5 Error将 Play Framework 项目导入 IntelliJ 14.1.5 错误
【发布时间】:2016-01-22 03:25:01
【问题描述】:

问题:

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

我想做的事情真的很简单,但我没有使用任何这些工具,我对如何解决这个问题有点迷茫。

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

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

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

背景信息:

我已经从 Play Framework 下载并安装了 IntelliJ 14.1.5 社区版和最新的 avtivator - Activator 1.3.6Play 2.4.3强>

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

中下载了最新的 Scala 插件

然后我打开 cmd 并输入“activator 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)在 sbt.MainLoop$.runWithNewLog(MainLoop.scala:65) 在 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) 在 xsbt.boot.Boot$.runImpl(Boot .scala:44) 在 xsbt.boot.Boot$.main(Boot.scala:20) 在 xsbt.boot.Boot.main(Boot.scala) [错误] java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException :不支持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:不支持的major.minor 52.0版 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 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) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 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) 在 sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58) 在 sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:58) 在 sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60) 在 sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:60) 在 sbt.Command$.process(Command.scala:92) 在 sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98) 在 sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:98) 在 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) 在 sbt.MainLoop$.next(MainLoop.scala:98) 在 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) 在 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) 在 xsbt.boot.Boot$.runImpl(Boot.scala:44) 在 xsbt.boot.Boot$.main(Boot.scala:20) 在 xsbt.boot.Boot.main(Boot.scala) [错误] java.lang.UnsupportedClassVersionError:com/typesafe/config/ConfigException:不支持的major.minor版本52.0 [错误] 使用 'last' 作为完整日志。

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

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

第二次尝试

与第一次尝试类似,但我在 localhost:8888 的激活器中单击“创建 IntelliJ 项目”,然后尝试使用与 第一次尝试相同的方法导入项目。

第三次尝试

打开项目并选择根目录,我设法导入了该项目,但它已将项目文件移动到“项目备份”,并且我收到很多警告说它基于过时的版本.这个不太明白。

第四次尝试

activator 创建项目后,

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

但是当我打开 Application.java (或 any 其他文件)时,该文件中的所有内容都带有红色下划线,并带有类似于“无法解析符号'结果'”,我无法编译任何东西。

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


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

【问题讨论】:

  • 你不是忘记启用 scala 插件了吗?您可以下载它,但将其禁用,所以只需检查一下。这是一个很好的屏幕指南:jetbrains.com/idea/help/…

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


【解决方案1】:

来自文档: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

【讨论】:

  • 感谢您的快速答复!我在“cmd”中输入了 javac -version,它也说“1.8.0_65”,我尝试在 IntelliJ 中将 SDK 设置为 1.8,结果仍然相同,我应该尝试从 IntelliJ 中的 sdk 中删除 1.7 吗?
  • 否 - 据我所知,您需要在项目中选择正确的版本
  • @user2621292 你让它工作了吗?我也有同样的问题。为 IntelliJ 和项目选择了 JSK 8,但导入时仍然出现相同的错误
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多