当前位置:  开发笔记 > 编程语言 > 正文

java background/daemon/service跨平台最佳实践

如何解决《javabackground/daemon/service跨平台最佳实践》经验,为你挑选了3个好方法。

我正在寻找在大多数平台(Windows,Mac OS,Linux [特别是Ubuntu])中使我的桌面java程序在后台(守护程序/服务?)运行的最佳方法.

通过"最佳方式",我希望找到一种方式:

    需要少量的平台特定代码.

    不要求用户做任何普通计算机用户不能/不会做的事情

    不是资源匮乏.

我理解我的要求可能不切实际,但我希望这种情况有某种"最佳实践".

如何前进?



1> pro..:

您可以使用Apache Commons守护程序代码将Java应用程序作为服务(Windows)或守护程序(Linux)运行.

结构体

守护进程由2部分组成.一个用C语言编写,用于创建操作系统的接口,另一个用Java编写,提供Daemon API.

平台

支持Win32和UNIX类平台.对于Win32平台,请使用procrun.对于像UNIX这样的平台,使用jsvc.

Java代码

您必须编写一个实现以下方法的类(MyClass):

* void load(String[] arguments): Here open the configuration files, create the trace file, create the ServerSockets, the Threads
* void start(): Start the Thread, accept incoming connections
* void stop(): Inform the Thread to live the run(), close the ServerSockets
* void destroy(): Destroy any object created in init()



2> Chris Lieb..:

您可以使用Java Service Wrapper将任何Java程序转换为服务/守护程序.它由多个OSS项目使用,并作为Nexus Maven Repository Manager的一部分提供,因此可以作为开箱即用的服务安装.要使用它,作者,您只需创建一个配置文件,然后运行一个简单的批处理文件在Windows上创建服务或将init脚本复制到Linux上的正确运行级别.



3> OscarRyz..:

您可以使用 SystemTray类并在默认平台中安装任何其他应用程序.

对于Windows,它可能是在启动时运行的计划任务.对于Linux和OSX,我不知道(除了crontab在某种程度上太技术化了)但我很确定他们都有办法轻松地做同样的事情.

不幸的是(截至今天)Apple尚未完成1.6端口.

它不会是真正的恶魔,而是像谷歌桌面这样的应用程序.

我听说Quartz是个不错的选择.但我从来没有用过它.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有