我正在使用自定义信号处理程序来捕获自定义java守护程序中的TERM,ABRT和INT信号.我在代码中有这个处理程序,以便我可以向它发送TERM信号并通过kill命令正常关闭程序.信号处理程序现在正常工作,但是当我编译代码时,我收到以下警告(多次):
警告:sun.misc.SignalHandler是Sun专有API,可能会在将来的版本中删除
使用这些类时:
import sun.misc.SignalHandler;
import sun.misc.Signal;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法将信号发送到正在运行的JVM以启动主线程的关闭?我不希望将我的代码绑定到此API,以便将来删除它.
此代码现在使用1.5.0_22 JVM在Solaris和HPUX上运行.任何帮助或建议将不胜感激.我使用IBM的这个文档来开发信号处理程序:
http://www.ibm.com/developerworks/java/library/i-signalhandling/
yka*_*ich 17
首先,要了解这只是sun.misc包的标准警告.他们告诉您,您使用的API不是标准的Java API.这并不意味着他们将来会积极计划删除此API.http://java.sun.com/products/jdk/faq/faq-sun-packages.html
至于你的问题,我不太清楚为什么java进程处理kill信号的默认方式对你来说还不够:如何优雅地停止java进程?.如果需要添加其他逻辑,可以添加关闭挂钩.
尽管如此,如果您正在寻找其他方法让您的Java进程知道是时候退出,您可以让它监听套接字,stdin或命名管道......
您可能还想查看JVMTI
| 归档时间: |
|
| 查看次数: |
19106 次 |
| 最近记录: |