无法导出 Play!应用程序作为战争

Posted

技术标签:

【中文标题】无法导出 Play!应用程序作为战争【英文标题】:Can't export Play! app as war 【发布时间】:2011-10-03 03:34:52 【问题描述】:

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

D:\Dropbox\eclipseProjectsClassic>play war MyApp -o MyApp.war --zip ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~玩! 1.2.3,http://www.playframework.org ~ 在地址监听传输 dt_socket:8000 04:17:03,694 INFO ~ 开始 D:\Dropbox\eclipseProjectsClassic\MyApp 线程“main”中的异常 java.lang.UnsupportedClassVersionError: DocViewerPlugin : Unsupported maj or.minor 版本 51.0 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:616) 在 play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java :158) 在 play.classloading.ApplicationClassloader.loadClass(ApplicationClassloader.java:84) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:248) 在 play.plugins.PluginCollection.loadPlugins(PluginCollection.java:100) 在 play.Play.init(Play.java:286) 在 play.server.Server.main(Server.java:158) ~ 将当前版本的框架和应用打包到 D:\Dropbox\eclipseProjectsClassi c\MyApp.war ... 回溯(最近一次通话最后): 文件“C:\play\play”,第 153 行,在 状态 = cmdloader.commands[play_command].execute(command=play_command, app=play_app, args=remai ning_args, env=play_env, cmdloader=cmdloader) 文件“C:\play\framework\pym\play\commands\war.py”,第 65 行,在执行中 package_as_war(应用程序、环境、war_path、war_zip_path、war_exclusion_list) package_as_war 中的文件“C:\play\framework\pym\play\utils.py”,第 117 行 copy_directory(app.path, os.path.join(war_path, 'WEB-INF/application'), war_exclusion_list) 文件“C:\play\framework\pym\play\utils.py”,第 230 行,在 copy_directory shutil.copyfile(from_, to_) 文件“C:\play\python\lib\shutil.py”,第 53 行,在 copyfile 中 fdst = 打开(dst,'wb') IOError: [Errno 2] 没有这样的文件或目录:'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 仍然出现。

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

【问题讨论】:

【参考方案1】:

如果我从 Play 1.2.4RC1 的发行说明中理解的话,Play 1.2.3 并没有完全支持 Java 7。尝试使用来自Play framework download page 的新 Play 1.2.4 候选版本?它的发行说明告诉我们“Java 7 现在支持开箱即用”。

【讨论】:

以上是关于无法导出 Play!应用程序作为战争的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Play Framework 战争包含重复的类文件?

。apk文件导出问题(无法访问数字证书-无法加载证书)

导出后 Google Play 服务不起作用

Android - proguard 和 google play 服务的应用程序导出错误

我无法测试我在Google Play控制台上注册的应用

部署新战争后应用程序的工作灯控制台无法正常工作