玩!部署为JAR或服务的框架?

时间:2012-03-12 21:00:20

标签: java jar playframework

我们使用play!开发了一个小应用程序,它在用户的计算机(Windows XP或Windows 7)上独立运行,因为用户没有网络访问权限。目前,它在控制台/命令窗口中运行。我想这样做,所以在任务栏中没有控制台窗口正在运行游戏 - 实际上,主要是因为用户倾向于关闭窗口。我想出了一些想法,但我希望得到一些验证或其他想法。

首先,我考虑通过javaw运行Java,这通常是运行Java的GUI应用程序运行的 - 但我会运行什么?我想我可以运行带有WAR输出的Winstone Servlet容器! (作为下面其他stackoverflow问题的解决方案提到)。

其次,我正在考虑将其包装在Windows服务中。

这个问题类似,但略有不同(我不介意安装play!,这只涉及解压缩框架): Deploy Play! application as executable jar

有没有人使用这些技术中的任何一种,还是有更好的方法?优点/缺点/实例

谢谢!


更新:有关Winstone的任何评论?事实证明,由于安全限制,我们将无法[轻松]创建服务或计划任务(如SYSTEM)。再次感谢。

4 个答案:

答案 0 :(得分:2)

我为一些应用做了类似的事情。我执行的步骤是

  1. 创建一个启动播放应用的bat文件。这可以像play runplay start
  2. 一样简单
  3. 创建一个在系统启动时执行的计划任务,使用SYSTEM作为用户配置文件来运行命令。
  4. 这种方法已经在我的内部系统上工作了一年多。

答案 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。作为系统调用。这样,控制台窗口根本不启动。到目前为止效果很好。似乎有各种各样的解决方案,但这很简单。