如何在java中杀死名称服务器进程
Posted
技术标签:
【中文标题】如何在java中杀死名称服务器进程【英文标题】:How to kill the nameserver process in java 【发布时间】:2009-10-18 22:06:49 【问题描述】:我使用 IDL 文件构建了一个客户端服务器应用程序,用于通过网络进行客户端服务器通信。客户端和服务器程序都在 java 中。当用户进入退出时,服务器和客户端都退出。但是我无法终止名称服务器进程。 我使用命令
启动了名称服务器tnameserv -ORBInitialPort 1050
如何在客户端或服务器程序(在 java 中)中终止名称服务器?
【问题讨论】:
您无法使用基于 java 的方法停止标准名称服务器 【参考方案1】:当你运行 tnameserv 时,你必须通过 kill 命令 (linux,unix) 或 Ctrl+C (windows) 来杀死它
如果在 linux/unix 上,这应该可以解决问题:
killall tnameserv
见http://java.sun.com/j2se/1.4.2/docs/guide/idl/tnameserv.html#stoppingnameserver
编辑:
如果您想从 withing java 中发出 killall 命令,请使用:
runtime.exec("killall tnameserv");
见http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html
想法:
从我们的程序外部启动 tnameserv,然后尝试从内部终止它似乎很奇怪。 (权限问题、其他用户使用 nameserv 等)根据您的需要,为什么不从您的应用程序中启动 tnameserv?
【讨论】:
来自 linux 命令行。运行“tnameserv -ORBInitialPort 1050”命令的地方。 但问题是如何杀死客户端或服务器应用程序(java)! 您可以使用 java 内部的 runtime.exec() 来运行 killall 命令。但是,现在您的程序仅适用于具有 killall 的系统(这可能没问题)。我将编辑我的答案。以上是关于如何在java中杀死名称服务器进程的主要内容,如果未能解决你的问题,请参考以下文章