在命令行 Java 程序工作时向其发送命令



我有一个Java程序处理一大堆XML文件。 该过程需要几个小时才能运行,有时我需要停止。 现在,我使用 CTRL-C 杀死它,记下它正在处理哪个文件,然后删除这些文件的数据并重新处理它们。

有没有办法让 Java 在等待用户在命令行上输入时继续工作,此外,我可以让它在侦听时继续将日志信息输出到命令提示符吗?

考虑过让它在文件之间等待用户输入几秒钟,但这会增加整体处理时间,而且我不确定有没有办法轻松使用户输入超时。

您有兴趣生成另一个线程供 XML 处理器运行。 看看java.util.concurrent图书馆。

您的主线程可以处理用户输入,而另一个线程可以向控制台报告。 处理两者之间的任何并发问题可能很困难,最好避免两者之间的通信,以免自己头疼。

您最终将添加类似于

Thread xmlProcessorThread = new Thread(yourRunnableXMLProcessor);
xmlProcessorThread.run();

并将runnable接口添加到 XML 处理器(因此得名 yourRunnableXMLProcessor

在命令行应用程序中,启动一个实际执行文件处理工作的新线程。处理线程可以在每个文件之后检查内部标志,并确定是否继续。主应用程序线程将继续侦听命令行输入,并可以根据接收输入的时间设置标志的值。

相关内容

  • 没有找到相关文章

最新更新