在不使用JNI的情况下,在java中捕获kill信号的最佳方法是什么.我确实发现了sun.misc.Signal和sun.misc.SignalHandler以及在将来的版本中被删除的可能性的警告.
使用JNI调用ac lib是我唯一的选择吗?
我想在每次用户退出程序时保存程序设置.所以当用户退出程序时我需要一种方法来调用函数.我怎么做?
我使用的是Java 1.5.
我正在使用自定义信号处理程序来捕获自定义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/
我有一个Java程序基本上执行以下操作:
public static void main(String[] args)
{
while(true)
{
// does stuff ...
}
}
Run Code Online (Sandbox Code Playgroud)
无限循环是设计的 - 当单独留下时,程序将无限循环.在大多数情况下它工作正常.但是,有时候我想把程序用于维护,当我把它关闭时,我想确保它遍历循环中的所有代码然后退出.
我想知道什么是最好的解决方案.我想到的一个想法是做这样的事情:
public static void main(String[] args)
{
File f = new File("C:\exit.txt");
while(!f.exists())
{
// does stuff ...
}
}
Run Code Online (Sandbox Code Playgroud)
这基本上允许我通过创建一个名为"exit.txt"的文件来优雅地离开循环.这对我的目的来说可能没问题,但我想知道是否有更好的替代方法.
伙计们抱歉,如果我通过询问这样一个菜鸟问题冒犯了某人,因为我看到有人因为不合适而有"明显失误"的问题.
这是我第一次问这里,请原谅我,如果有什么不合适,对不起,如果我的英语不是很好.
当我的程序通过任务管理器关闭时,我正在尝试创建临时文件...但我不知道如何检测我的程序是否通过任务管理器关闭!
我怎么做?我搜索了很多,但要么我使用了错误的关键字,要么互联网上没有简单的解决方案.我希望这里有人可以帮助我.
最好的问候和提前感谢.