用 java 程序 B 终止 java 程序 A
Terminate a java program A with a java program B
我想停止已在 Windows 中使用命令提示符启动的 Java 程序。
如何使用其他 运行 Java 程序将其关闭?
如果您想编程终止或停止,只需输入
System.exit(0);
尽管 System.exit(1);
表示出现了 "non-zero" 退出代码,这通常意味着发生了错误。用户 0 如果它退出并且一切都很好。使用非零(如 1)表示出现错误(如不存在的文件或其他内容)。
如果你想从另一个java程序中停止java程序,你首先必须得到java程序的进程ID。一旦知道此进程 ID,您就可以通过系统调用将其终止(就像在终端中一样)。
例如,如果我有这个 Java 程序 运行 不确定:
import java.lang.management.ManagementFactory;
public class Test {
public static void main(String[] args) {
System.out.println("Hello, World");
System.out.println(ManagementFactory.getRuntimeMXBean().getName());
while (true) {
int i = 0;
}
}
}
我可以看到它的进程 ID(例如 123
)并使用以下命令将其终止。
$ kill 123
完成此操作后,您必须找到一些方法让它在请求后将此数据输出到另一个 java 程序。然后一旦进程 ID 已知,您将管理系统调用或 shell exec.
import java.lang.* ;
public class Shell
{
public static void main(String[] args)
{
try {
String cmd = "kill 123";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd) ;
} catch (Exception ex) {
System.out.println("SOMETHING WENT WRONG");
}
}
}
节点所有 shell 命令或 run.exec
必须捕获异常,因为它被抛出。它必须在 try catch 块中,否则将无法编译。
希望对您有所帮助。
我想停止已在 Windows 中使用命令提示符启动的 Java 程序。
如何使用其他 运行 Java 程序将其关闭?
如果您想编程终止或停止,只需输入
System.exit(0);
尽管 System.exit(1);
表示出现了 "non-zero" 退出代码,这通常意味着发生了错误。用户 0 如果它退出并且一切都很好。使用非零(如 1)表示出现错误(如不存在的文件或其他内容)。
如果你想从另一个java程序中停止java程序,你首先必须得到java程序的进程ID。一旦知道此进程 ID,您就可以通过系统调用将其终止(就像在终端中一样)。
例如,如果我有这个 Java 程序 运行 不确定:
import java.lang.management.ManagementFactory;
public class Test {
public static void main(String[] args) {
System.out.println("Hello, World");
System.out.println(ManagementFactory.getRuntimeMXBean().getName());
while (true) {
int i = 0;
}
}
}
我可以看到它的进程 ID(例如 123
)并使用以下命令将其终止。
$ kill 123
完成此操作后,您必须找到一些方法让它在请求后将此数据输出到另一个 java 程序。然后一旦进程 ID 已知,您将管理系统调用或 shell exec.
import java.lang.* ;
public class Shell
{
public static void main(String[] args)
{
try {
String cmd = "kill 123";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd) ;
} catch (Exception ex) {
System.out.println("SOMETHING WENT WRONG");
}
}
}
节点所有 shell 命令或 run.exec
必须捕获异常,因为它被抛出。它必须在 try catch 块中,否则将无法编译。
希望对您有所帮助。