Java Can';t让System.exit()在dragon12项目中工作
除了系统退出(0),我的一切都正常工作。如果按下按钮,它应在剩余的任何时间退出。我不知道该怎么办。非常感谢您的帮助Java Can';t让System.exit()在dragon12项目中工作,java,Java,除了系统退出(0),我的一切都正常工作。如果按下按钮,它应在剩余的任何时间退出。我不知道该怎么办。非常感谢您的帮助 /* Creates the perfect hard-boiled(simulates 12 minutes in boiling water) or soft-boiled egg(simulates 6 minutes in boiling water). Both options require 10 seconds of rinsing
/*
Creates the perfect hard-boiled(simulates 12 minutes in boiling water) or soft-boiled
egg(simulates 6 minutes in boiling water). Both options require 10 seconds of rinsing
under cold water after necessary time for boiling. Allow user to exit any remaining
time.
*/
import java.io.*;
import java.util.*;
public class AdvancedEggMaker {
public static void main(String[] args) {
MCU mcu = null;
try {
mcu = new MCU(new Communicator(args[0]));
}
catch (IOException e) {
System.out.println(e);
}
mcu.println("SW2 - HB Egg", 0);
mcu.println("SW3 - SB Egg", 1);
while (true) {
int sw = mcu.getSwitch();
if (sw == 2) {
mcu.println("Hard Boiled Egg", 0);
mcu.println("Place Egg in", 0);
mcu.println("boiling water", 1);
mcu.println("then press SW4", 0);
mcu.println("SW5 - Quit", 1);
int sw2 = mcu.getSwitch();
switch (sw2) {
case 4:
int t = 720;
while (t > 0 && sw2 == 4) {
t = (t - 1);
mcu.println("Boiling...", 0);
mcu.println((t / 60) + "mins left...", 1);
}
break;
case 5:
System.exit(0);
break;
}
}
if (sw == 3) {
mcu.println("Soft Boiled Egg", 0);
mcu.println("Place Egg in", 0);
mcu.println("boiling water", 1);
mcu.println("then press SW4", 0);
mcu.println("SW5 - Quit", 1);
int sw2 = mcu.getSwitch();
switch (sw2) {
case 4:
int t = 360;
while (t > 0 && sw2 == 4) {
t = (t - 1);
mcu.println("Boiling...", 0);
mcu.println((t / 60) + "mins left...", 1);
}
break;
case 5:
System.exit(0);
break;
}
}
mcu.println("Rinse Egg", 0);
mcu.println("then press SW4", 0);
mcu.println("SW5 - Quit", 1);
int sw3 = mcu.getSwitch();
if (sw3 == 4) {
double t = 10;
while (t > 0.0) {
t = (t - 1);
mcu.println("Rinsing...", 0);
mcu.println(t + "Secs left...", 1);
}
if (sw == 5) {
System.exit(0);
}
}
}
}
}
您确定执行正在到达某个System.exit(0)语句吗。我没有看到任何sysout或日志来帮助您确定这一点。首先检查一下,因为我不认为有任何理由它不应该工作
其次,您可以检查代码中是否有一些后台线程。在这种情况下,您可能在线程中的某个位置打开了一些连接/流,并且它不允许系统退出(0)终止进程。MCU类的代码是什么?您误解了开关的用法。检查您是否输入了数字5,然后它继续执行案例5。打开连接和流不会阻止JVM退出。我正在使用龙板进行测试。按下sw4后,它将case4传递给int sw2=mcu.getSwitch();然后开始计数。但当我按下sw5时,它不会变为case5,所以它不会到达System.exit(0)。如果你能解决这个问题呢?