本文介绍了无法导出Play!应用即战的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试打包Play!针对Java 7构建的应用程序.出现此错误.另外,我无法从命令行启动该应用程序,但可以从Eclipse启动它.

I'm trying to package a Play! app built against Java 7. I'm getting this error. Also, I cannot launch the app from the command line, but from Eclipse it works.


D:\Dropbox\eclipseProjectsClassic>play war MyApp -o MyApp.war --zip
~        _            _
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/
~
~ play! 1.2.3, http://www.playframework.org
~
Listening for transport dt_socket at address: 8000
04:17:03,694 INFO  ~ Starting D:\Dropbox\eclipseProjectsClassic\MyApp
Exception in thread "main" java.lang.UnsupportedClassVersionError: DocViewerPlugin : Unsupported maj
or.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java
:158)
        at play.classloading.ApplicationClassloader.loadClass(ApplicationClassloader.java:84)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at play.plugins.PluginCollection.loadPlugins(PluginCollection.java:100)
        at play.Play.init(Play.java:286)
        at play.server.Server.main(Server.java:158)

~ Packaging current version of the framework and the application to D:\Dropbox\eclipseProjectsClassi
c\MyApp.war ...
Traceback (most recent call last):
  File "C:\play\play", line 153, in 
    status = cmdloader.commands[play_command].execute(command=play_command, app=play_app, args=remai
ning_args, env=play_env, cmdloader=cmdloader)
  File "C:\play\framework\pym\play\commands\war.py", line 65, in execute
    package_as_war(app, env, war_path, war_zip_path, war_exclusion_list)
  File "C:\play\framework\pym\play\utils.py", line 117, in package_as_war
    copy_directory(app.path, os.path.join(war_path, 'WEB-INF/application'), war_exclusion_list)
  File "C:\play\framework\pym\play\utils.py", line 230, in copy_directory
    shutil.copyfile(from_, to_)
  File "C:\play\python\lib\shutil.py", line 53, in copyfile
    fdst = open(dst, 'wb')
IOError: [Errno 2] No such file or directory: 'D:\\Dropbox\\eclipseProjectsClassic\\MyApp.war\\WEB-
INF/application\\MyApp.war\\WEB-INF\\application\\MyApp.war\\WEB-INF\\application\\MyApp.war\\WEB
-INF\\application\\MyApp.war\\WEB-INF\\application\\MyApp.war\\WEB-INF\\application\\test\\data
\\DataCollectorTest.java'

更新我已经通过将JAVA_HOME系统变量更改为jdk7目录解决了UnsupportedClassVersionError问题.仍然会出现IOError.

UPDATE I've solved the UnsupportedClassVersionError by changing the JAVA_HOME system variable to jdk7 directory. The IOError is still coming up though.

UPDATE2 通过将输出目录更改为"C:\ MyApp.war"解决了IOError

UPDATE2 Solved IOError by changing te output directory to "C:\MyApp.war"

推荐答案

如果我从Play 1.2.4RC1的发行说明中正确理解,则Play 1.2.3并不完全支持Java 7.可以从 Play框架下载页面中使用新的Play 1.2.4候选版本进行尝试吗?它的发行说明告诉我们,"Java 7现在可以立即使用了."

If I understood right from the release notes of Play 1.2.4RC1, Play 1.2.3 did not have full Java 7 support. Try it with the new Play 1.2.4 release candidate from the Play framework download page? It's release notes tell that "Java 7 is now supported out of the box in play".

这篇关于无法导出Play!应用即战的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 00:00