我是否可以使用命令行/脚本来修改已在运行的java程序中的变量

时间:2014-03-20 12:38:06

标签: java multithreading sockets batch-file command-line

我有一个线程TCP连接,实际上是等待在while(true)循环内接收消息。程序本身的功能很好但是它没有在退出时正常关闭套接字/线程,偶尔我得到僵尸进程,我必须杀死才能在同一端口上重新连接。我正在编写一个脚本,负责关闭它和另一个与它并行运行的程序。最初我的计划是使用ShutdownHook来清理最后的所有内容,但是关闭钩子是由杀死进程的脚本触发的。

有没有什么方法可以在Java程序运行时将信息传递给/修改它,例如与while循环关联的boolean? [虽然(真的)看起来好像编码错误]

如果没有,那么是否有人更好地了解如何使用脚本来清理和关闭更加优雅的程序,该程序作为没有GUI的jar运行。

提前致谢

1 个答案:

答案 0 :(得分:0)

很难理解为什么需要这样做。是否可以调试程序以确定更好/更可靠的方法来确保套接字在退出之前正确关闭?

您可以查看程序看到的系统变量的使用是否有外部元素影响应用程序的运行逻辑状态。