【问题标题】:Java service wrapper to create service for Java UI application为 Java UI 应用程序创建服务的 Java 服务包装器
【发布时间】:2012-07-18 20:34:53
【问题描述】:

我创建了一个需要作为服务运行的 Java 应用程序。对于服务包装器,我尝试使用 tanuki 和其他包装器软件。 现在,我的应用程序确实作为服务运行 - 但是,它在 SYSTEM 下作为服务运行,而不是在当前登录的用户下运行。

我的应用程序有一个 UI,当应用程序作为服务运行时,它不会显示。我怀疑这是否已经发生,因为该服务在 SYSTEM 下运行,而不是在当前登录的用户下运行。 当我运行应用程序(没有将其作为服务安装)时,UI 确实出现了,我可以看到 java 进程在当前用户的 id 下运行,而在作为服务安装时它在 SYSTEM 下运行。

现在,如果没有 UI,我的应用程序就什么都没有了。当系统启动并且 UI 也需要显示时,我需要应用程序作为服务运行。

有没有人尝试过我在这里做的事情并且遇到过类似的问题。如果是这样,您是如何解决的? 有没有我可以使用的不同的包装服务,并且没有这个问题。

Tanuki 的文档确实解释了将 java 应用程序设置为服务,但没有讨论带有 UI 的 java 应用程序并在当前登录的用户下运行它。

更新

只是为了让这里的人们对我想要完成的工作有更多的了解 - 我试图在我的应用中实现的行为类似于 Dropbox 或 Yahoo Messenger 或任何其他软件则以 Windows 启动并继续在后台运行,允许用户使用系统托盘图标与之交互。所以基本上所有这些都是用 Java/Swing 构建的。现在,当涉及到应用程序的部署时——我可以独立运行它,但运行 jar 文件或为其创建和运行可执行包装器。但是,我希望该软件从 Windows 启动开始并继续作为服务在后台运行,同时允许用户进行更改并通过它设置的系统托盘图标调出 UI 与它进行交互。 截至目前,它确实作为服务成功运行。它执行理想情况下应该执行的所有操作 - 只是没有系统托盘图标来调出 UI 并对其配置进行更改。

更新 - 2

好的.. 我尝试了高级安装程序,它确实为我打包了所有内容,以便为 Windows 生成一个 exe 安装程序。现在我只需要自动启动软件。谁能帮我这个?我在高级安装程序中没有看到自动让程序自动添加到自动启动中的选项。

链接到 tanuki 的文档 http://wrapper.tanukisoftware.com/doc/english/faq.html

【问题讨论】:

    标签: java swing windows-services


    【解决方案1】:

    罗汉, 请查看以下页面:

    http://wrapper.tanukisoftware.com/doc/english/prop-ntservice-interactive.html

    您需要将服务标记为交互式,然后以 SYSTEM 用户身份运行,以使您的 GUI 显示在第一个登录的桌面上。

    问题是微软从 Windows 2008 和 Vista 开始更改了允许执行的服务。这意味着从这些版本开始,GUI 将始终显示在用户需要切换到的沙盒桌面上。

    如果您想在所有桌面上显示 GUI,在所有版本的 Windows 中,您将需要在桌面内运行 JVM。

    干杯, 雷夫

    【讨论】:

    • 嗨 Leif,感谢您的帮助。请找到问题的更新,它可能更好地描述我在这里想要实现的目标。更新从问题中标题更新的正下方开始。
    【解决方案2】:

    我想评论你的问题,但我没有足够的声誉来做这件事。所以我现在误用了答案功能。

    我也有类似的问题。我在 Windows XP 机器上使用了一段时间的 tanuki 包装器,所有登录的用户都看到了 Swing GUI。

    现在我迁移到 Windows 2008 Server 并像这样配置当前版本的 tanuki 包装器:

    wrapper.ntservice.interactive=true
    wrapper.ntservice.hide_console=true
    

    (请参阅文档 herehere

    Windows 服务在 LOCAL SYSTEM 帐户下运行。

    但图形用户界面仍未显示。你找到解决问题的办法了吗?

    【讨论】:

    • 不……还没有!我们实际上尝试了高级安装程序 - 它在启动文件夹 (Windows) 中创建应用程序的快捷方式,我们认为这会启动应用程序。由于某种原因,它也不起作用:(
    【解决方案3】:

    不要认为你应该有一个带有服务的 UI。把它放在启动组吗?
    UI 和应用程序有什么作用?

    【讨论】:

    • 嗨..我已经更新了这个问题,我想用这个软件完成什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多