我们使用play!开发了一个小应用程序,它在用户的计算机(Windows XP或Windows 7)上独立运行,因为用户没有网络访问权限。目前,它在控制台/命令窗口中运行。我想这样做,所以在任务栏中没有控制台窗口正在运行游戏 - 实际上,主要是因为用户倾向于关闭窗口。我想出了一些想法,但我希望得到一些验证或其他想法。
首先,我考虑通过javaw运行Java,这通常是运行Java的GUI应用程序运行的 - 但我会运行什么?我想我可以运行带有WAR输出的Winstone Servlet容器! (作为下面其他stackoverflow问题的解决方案提到)。
其次,我正在考虑将其包装在Windows服务中。
这个问题类似,但略有不同(我不介意安装play!,这只涉及解压缩框架): Deploy Play! application as executable jar
有没有人使用这些技术中的任何一种,还是有更好的方法?优点/缺点/实例
谢谢!
更新:有关Winstone的任何评论?事实证明,由于安全限制,我们将无法[轻松]创建服务或计划任务(如SYSTEM)。再次感谢。
答案 0 :(得分:2)
我为一些应用做了类似的事情。我执行的步骤是
play run
或play start
这种方法已经在我的内部系统上工作了一年多。
答案 1 :(得分:2)
或者,您可以使用yajsw将播放应用程序包装为Windows服务。它工作得很好,易于设置。
我遇到的唯一问题是,在Windows Server 8 R2上运行的一个盒子上,当调度程序启动时,某些作业会重复。我不相信它与yajws直接相关,我无法使用相同的设置在其他环境中重现错误。
我设法通过在我的doJob方法中添加同步块来解决它。 看看here有关设置播放yajws的信息。
答案 2 :(得分:0)
我不确定游戏是否适用于winstone。已知可以使用播放的应用程序服务器列表here。
你需要用玩战争myapp -o myapp.war 来对你的游戏应用程序进行战争并先测试它。
答案 3 :(得分:0)
我最终创建了一个运行" play run"的批处理文件,以及一个调用" start / B runPlay.bat"的可运行JAR。作为系统调用。这样,控制台窗口根本不启动。到目前为止效果很好。似乎有各种各样的解决方案,但这很简单。