Java进程挂起并继续
我正在寻找一种能够在Java上实现这一点的解决方案:Java进程挂起并继续,java,linux,windows,process,suspend,Java,Linux,Windows,Process,Suspend,我正在寻找一种能够在Java上实现这一点的解决方案: 产生一个进程 挂起它(就像Linux中的kill-STOP一样) 继续一个挂起的进程(如Linux中的kill-CONT) 在运行时读取/写入它们的标准输入/输出管道 在(至少)Linux和Windows上工作 据我所知,Java标准只实现了第一个和第四个,但没有实现第二个,也没有实现第三个 我能做什么呢?没有从Java“直接”完成的方法 在每种情况下,您都需要执行一个外部程序或调用本机代码来执行Windows/Linux特定的操作 在L
- 产生一个进程
- 挂起它(就像Linux中的kill-STOP一样)
- 继续一个挂起的进程(如Linux中的kill-CONT)
- 在运行时读取/写入它们的标准输入/输出管道
- 在(至少)Linux和Windows上工作
kill
在Windows上,您可以调用SuspendThread()
,也可以启动SysInternals工具“PsSuspend”。这里有一些信息可以帮助您:
如果您希望从Java调用本机代码,JNIWrapper可能会帮助您
此外,如果您需要生成的进程的PID,那么您可能还需要通过本机代码启动它们,因为Java不会提供它们的PID。无法从Java“直接”执行
在每种情况下,您都需要执行一个外部程序或调用本机代码来执行Windows/Linux特定的操作
在Linux上,您可以按照建议使用kill
在Windows上,您可以调用SuspendThread()
,也可以启动SysInternals工具“PsSuspend”。这里有一些信息可以帮助您:
如果您希望从Java调用本机代码,JNIWrapper可能会帮助您
另外,如果您需要生成的进程的PID,那么您可能还需要通过本机代码启动它们,因为Java不会提供它们的PID。您知道的还不够多。你可以用。您可以使用这个包。此外,您可以在java中执行shell命令,通过它您可以轻松地实现2和3。可能还有其他一些方法。该解决方案适用于线程。它对过程也有效吗?你知道的还不够多。你可以用。您可以使用这个包。此外,您可以在java中执行shell命令,通过它您可以轻松地实现2和3。可能还有其他一些方法。该解决方案适用于线程。它也适用于进程吗?那么,我不能像Spider Boris建议的那样使用wait/notify吗?不,wait/notify用于控制Java程序内的线程,而您希望控制外部进程。JNIWrapper似乎不是免费软件。是否有另一个仅包含免费技术的解决方案?自己编写本机Windows代码,即使用VisualC++快照版生成DLL。使用原始JNI从Java程序调用此DLL。那么,我不能像Spider建议的那样使用wait/notify吗?不,wait/notify用于控制Java程序内的线程,而您希望控制外部进程。JNIWrapper似乎不是免费软件。是否有另一个仅包含免费技术的解决方案?自己编写本机Windows代码,即使用VisualC++快照版生成DLL。使用原始JNI从Java程序调用此DLL。