Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VMStartEvent之后的Java VM挂起_Java_Java 7_Jdi - Fatal编程技术网

VMStartEvent之后的Java VM挂起

VMStartEvent之后的Java VM挂起,java,java-7,jdi,Java,Java 7,Jdi,VMStartEvent之后,虚拟机挂起到此行 vm = launchTarget("com.sun.tools.example.trace.Hello", false); EventQueue eventQ = vm.eventQueue(); boolean connected = true; while (connected) { try { EventSet eventSet = queue.remove(); EventIterator

VMStartEvent之后,虚拟机挂起到此行

vm = launchTarget("com.sun.tools.example.trace.Hello", false);
EventQueue eventQ = vm.eventQueue();
boolean connected = true;
while (connected) {
     try {
          EventSet eventSet = queue.remove();
          EventIterator it = eventSet.eventIterator();
          while (it.hasNext()) {
               handleEvent(it.nextEvent());
          }
          eventSet.resume();
     } catch (InterruptedException exc) {
          // Ignore
     } catch (VMDisconnectedException discExc) {
          //handleDisconnectedException();
          break;
     }
}

VM启动时使用
suspend=false
。根据Javadoc,我使用Java1.7

Hmm,删除将阻塞,直到可以执行新事件。所以我想说队列中没有事件。另一方面,Suspend选项只意味着jvm将等待或不等待,直到调试器连接到它。这是两件不同的事情,你能用java代码解释一下吗@philnateI不能,因为我对这个话题不太了解。但是,如果您在javadoc中查找EventQueue.remove()方法,您将看到它将阻塞,直到有新事件可用。看起来这应该是你的循环所做的。所以我不清楚你的问题是什么。对于挂起,简单地用true和false分别尝试一次。如果设置为true,jvm将停止程序的执行,直到调试器连接到它为止。这在早期启动调试期间非常有用,否则很难完成。顺便说一句,接受中断异常可能不是个好主意。
EventSet eventSet = queue.remove();