如何在IntelliJ中运行Play Framework 2.1项目?

7
我有一个现有的Play 2.1项目。我一直在使用控制台运行它,它可以正常工作。但是,当我尝试按照这些说明在IntelliJ中运行它时,它无法运行:https://www.jetbrains.com/help/idea/getting-started-with-play-2-x.html#run_debug_playApp
首先,我尝试右键单击应用程序并选择“运行play 2应用程序”来运行它。它无法运行,并给了我以下错误:
sbt.IncompatiblePluginsException: Binary incompatibility in plugins detected.

在调研了该问题后,我在JVM选项中添加了-Djline.terminal=并尝试再次运行。这次程序成功运行,但是当我尝试在浏览器中打开页面时出现了以下错误:
Global : Unsupported major.minor version 52.0

最后,我尝试将我的项目重新导入到Intellij中。 在导入之前,它要求我将build.properties中的SBT版本从0.12.2更新为0.12.4。 我这样做了,但仍然出现上面列出的相同错误。

注意:我将Java 7设置为我的JDK。

以下是完整的堆栈跟踪:

play.api.PlayException: Cannot init the Global object[Global : Unsupported major.minor version 52.0]
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:57) ~[play_2.10-2.1.1.jar:2.1.1]
    at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:51) ~[play_2.10-2.1.1.jar:2.1.1]
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10-2.1.1.jar:2.1.1]
    at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$globalInstance(Application.scala:50) ~[play_2.10-2.1.1.jar:2.1.1]
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance$lzycompute(Application.scala:383) ~[play_2.10-2.1.1.jar:2.1.1]
    at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance(Application.scala:383) ~[play_2.10-2.1.1.jar:2.1.1]
Caused by: java.lang.UnsupportedClassVersionError: Global : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.7.0_80]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) ~[na:1.7.0_80]
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.7.0_80]
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) ~[na:1.7.0_80]
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) ~[na:1.7.0_80]
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.7.0_80]

与此相关的声音 https://dev59.com/FWAg5IYBdhLWcg3wvNCF - ChristofferPass
我没有看到在运行配置中设置Java版本的选项。它不会使用我项目设置中设置的JDK吗? - TomahawkPhant
据我所知,并不总是这样。否则,我想你就不会有问题了。 - ChristofferPass
你使用的Intellij版本是什么?它仍然与JDK 7兼容吗? - cheffe
问题重复了!请参见 https://dev59.com/Fmkv5IYBdhLWcg3wvDXq - leonardo12
显示剩余2条评论
3个回答

3

当我从现有源导入时,IntelliJ不会给我那个选项。此外,我的项目中没有build.sbt文件。 - TomahawkPhant
OP已经指出他目前正在使用Java 7。 - Jason V

1

全局: 不支持的 major.minor 版本 52.0

这意味着您使用 JDK 1.8 进行编译并尝试在 JDK 1.7 中运行。问题是由于 Java 版本不匹配引起的。(检查此细节 example)

以下是报告的主要数字列表来源 Wiki

Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

解决方案

可能的解决方案是将项目的类编译确保在Java 1.7而不是Java 1.8中进行。按照以下步骤解决它(使用-target 1.7选项编译代码):

conf/application.conf中,确保设置java.source=1.7


0
尝试将Java版本从1.7.0_80更新到一些更新的1.7版本(例如1.7.0_131)。

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