我已经编写了一个名为quizSystem
的播放框架2.3.8的程序。
它正在使用内存数据库,某些控制器,视图类等。
现在,我想在另一台机器上运行我的程序(安装了JDK 8u45的Windows 7,并且PATH设置为JDK),因此我在机器1上运行activator dist
并获得了一个带有我的程序快照的.zip文件。我将此zip文件复制到了机器2,将其解压缩并使用控制台转到/ bin文件夹。其中有2个文件quizSystem
和quizSystem.bat
。
所以我输入quizSystem
错误:Oops, cannot start the server ... Database 'default' needs evolution
所以我尝试了这个:quizSystem -DapplyEvolutions=true
错误:Bad application path: -DapplyEvolutions=true
因此,我将applyEvolutions=true
行添加到application.conf
文件中。
但是,无论我使用哪个命令,都可以启动该程序。
我已经搜索并尝试了许多类似此处的解决方案:Play Framework 2.1.1 Deployment Issues
为什么进化/我的程序不起作用?
最佳答案
找到了解决方案:
目前,播放框架中似乎存在一个(打开?)错误:
https://github.com/playframework/playframework/issues/3081
如果我正确理解了java的输入参数的顺序,那么在play框架中就走错了路。这就是在控制台中手动输入产生错误的原因。
因此,这里是步骤的完整列表,以生成用于部署的工作程序:
1)在您的目录中,在控制台中输入activator dist
2)您在/target/universal
目录中找到一个zip文件(其中包含单词SNAPSHOT
或类似词
3)在目标计算机上,您需要安装的JDK,请转至以下位置:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
4)解压缩zip文件,在/bin
文件夹中编辑.bat文件
5)搜索set "APP_MAIN_CLASS=play.core.server.NettyServer"
并更改为
set "APP_MAIN_CLASS= -DapplyEvolutions.default=true play.core.server.NettyServer"
6)然后只需使用控制台导航到该文件夹并键入程序名称
我希望这可以使其他人避免几个小时的沮丧,绝望
并大声喊叫和诅咒:D