相关疑难解决方法(0)

如何让父进程退出子进程?

我正在使用ProcessBuilder启动子进程,并且如果父进程执行,则需要子进程退出.在正常情况下,我的代码正在正确地阻止孩子.但是,如果我导致操作系统杀死父级,则子级将继续运行.

有没有办法将子进程"绑定"到父进程,这样当父进程被杀时它会退出?


类似的问题:

java process

46
推荐指数
5
解决办法
5万
查看次数

有没有办法动态重启循环打印输出的HelloWorld Java程序?

考虑以下简单的代码,永远打印"Hi world":

public class WakeMeUpSomehow {

 public static void main(String[] args) {

    while (true) {
    try {
         System.out.println( " Hi world ");
         Thread.sleep(1000);                 //1000 milliseconds is one second.
    } catch(InterruptedException ex) {
         Thread.currentThread().interrupt();
    }
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

在此输入图像描述

有没有办法设计一个外部的第三个程序,它监视这个程序,以便在我们杀死它时注意到(如命令行中的CTRL + C); 然后这个"父"程序恢复"Hello World"运行?

我认为它可能看起来像这样:

在此输入图像描述

所以我的问题是 - 如何模拟这样的代码,具有这种故障安全功能?有办法做到这一点吗?

谢谢 !

编辑:我在这里找到了一个相关的简洁链接,但解决了一些不同的东西 - 如何重新启动Java应用程序?

java restart

11
推荐指数
1
解决办法
661
查看次数

一个主线程可以调用java中的其他主线程

我正在寻找有关java main方法的 更多知识public static void main(String[] args).当JVM调用main方法时,它会创建Main线程,并且整个程序在此Main线程中执行,直到某个用户线程在其自己的堆栈中显式启动.

我的问题是,是否可以main从其他main方法启动线程?

如果有人能给我一些关于主线程的参考,那就更好了.

java multithreading

3
推荐指数
1
解决办法
2088
查看次数

JDK 7将自身报告为JRE(通过"java.home"系统属性)

我刚刚安装了最新的JDK 7 Update 21并编写了以下单行程序(在Windows 7上):

public static void main(String[] args) {
    System.out.println("java.home = " + System.getProperty("java.home"));
}
Run Code Online (Sandbox Code Playgroud)

输出(令人惊讶):

java.home = D:\Java\jdk1.7.0_21\jre
Run Code Online (Sandbox Code Playgroud)

我相信我修复了所有常见原因:

  1. JAVA_HOME设置为"D:\ Java\jdk1.7.0_21"
  2. 我已将"D:\ Java\jdk1.7.0_21\bin"设置为系统PATH设置中的第一个路径.
  3. Windows\System32中没有java.exe
  4. 我正在使用"新鲜"的命令行
  5. 我已广泛搜索过此网站和其他网站
  6. 我的注册表不包含"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java运行时环境"键."HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.7"的值包含正确的"JavaHome"值.
  7. 在java.exe调用中添加"-server"选项不会更改输出

以下是您的信息的更多输出

D:\Temp>echo %PATH%
d:\Java\jdk1.7.0_21\bin

D:\Temp>echo %JAVA_HOME%
D:\Java\jdk1.7.0_21

D:\Temp>type SystemInfo.java
public class SystemInfo {

        public static void main(String[] args) {
                System.out.println("java.home = " + System.getProperty("java.home"));
        }

}

D:\Temp>java -verbose SystemInfo
[Opened d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.lang.Object from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.io.Serializable from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
...
[Loaded java.lang.Void from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
java.home = d:\Java\jdk1.7.0_21\jre …
Run Code Online (Sandbox Code Playgroud)

java windows

3
推荐指数
1
解决办法
2835
查看次数

标签 统计

java ×4

multithreading ×1

process ×1

restart ×1

windows ×1