我必须在主类中保留这个server.start和server.stop代码,我还必须从shell脚本中调用一个类,这样可以改变标志的状态。 问题是每当我这样做时,标志的状态在A类中没有改变,循环永远不会终止。我也尝试使用带有标志的volatile关键字但没有任何好处。
public class A {
static boolean flag;
public static void main (String args){
server.start()
waitforShutDown();
server.stop()
}
public static void waitforShutDown() {
while(!flag) {
Thread.sleep(5000);
}
}
public static void shutDown() {
flag=true;
}
}
//from this class i wll call for shutDown()
public class B {
public static void main (String args[]) {
new A().shutDown();
}
}
答案 0 :(得分:0)
Java中的程序只能有一个主要方法。因此B类将不会被执行。您可以考虑在A类中使用线程或实例化B类。