Java 进程在Eclipse调试器中启动后挂起
我在使用Eclipse调试器时面临以下问题。我直接从Eclipse以调试模式启动JBoss 5.1(这个过程几乎整天都在运行,没有重新启动),有时我想用客户机应用程序(Swing+OSGi)启动新的调试Sesion或事件调试,一些JUnit测试Eclipse会启动这个过程,但这个新过程会立即挂起。当我将透视图更改为debug时,我可以看到两个进程—JBoss运行时没有出现问题,但新进程已挂起—控制台输出是清晰的,进程显示挂起线程的Eclipse图标。有时选择这个进程并按下绿色的“恢复”按钮会有所帮助,有时我不得不用“终止删除”来终止这个进程。当我再次尝试运行此流程时,我有时会在相同的情况下运行,有时会毫无问题地运行新流程 真正奇怪的是,当eclipse“挂起”新的客户端应用程序进程,我在调试过程中杀死JBoss进程时,第二个挂起的进程突然运行。我认为,这两个进程在某种“死锁”情况下运行,但我不知道如何解决这个问题 我不知道,这个问题的原因是什么。。。Java 进程在Eclipse调试器中启动后挂起,java,eclipse,debugging,Java,Eclipse,Debugging,我在使用Eclipse调试器时面临以下问题。我直接从Eclipse以调试模式启动JBoss 5.1(这个过程几乎整天都在运行,没有重新启动),有时我想用客户机应用程序(Swing+OSGi)启动新的调试Sesion或事件调试,一些JUnit测试Eclipse会启动这个过程,但这个新过程会立即挂起。当我将透视图更改为debug时,我可以看到两个进程—JBoss运行时没有出现问题,但新进程已挂起—控制台输出是清晰的,进程显示挂起线程的Eclipse图标。有时选择这个进程并按下绿色的“恢复”按钮会有所
我的环境:Eclipse 4.3.2,Java 1.7.0_21-64位此程序可能会帮助您了解您的情况:
class Solution {
public static ListNode reverseKGroup(ListNode head, int k) {
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode prev = dummyHead, cur = dummyHead;
while (cur != null) {
for (int i = 0; i < k; i++) {
if (cur == null || cur.next == null) return dummyHead.next;
cur = cur.next;
}
ListNode nxt = prev.next;
prev.next = reverse(prev.next, cur.next);
prev = nxt;
System.out.println(prev);
cur = nxt;
}
return dummyHead.next;
}
private static ListNode reverse(ListNode head, ListNode tail) {
if (head == tail || head.next == tail) return head;
ListNode prev = head, cur = head.next;
while (cur != tail) {
ListNode nxt = cur.next;
cur.next = prev;
//System.out.println("cur.next:" + cur.next);
prev = cur;
//System.out.println("prev:" + prev);
cur = nxt;
}
//head.next = tail;
return prev;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
l1.next = new ListNode(2);
l1.next.next = new ListNode(3);
l1.next.next.next = new ListNode(4);
l1.next.next.next.next= new ListNode(5);
System.out.println(reverseKGroup(l1, 3));
}
}
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
public String toString(){
String retVal = "";
ListNode n = this;
while(n!=null){
retVal += n.val +" ";
n = n.next;
}
return retVal;
}
}
类解决方案{
公共静态ListNode反向组(ListNode头,int k){
ListNode dummyHead=新ListNode(0);
dummyHead.next=头;
ListNode prev=dummyHead,cur=dummyHead;
while(cur!=null){
for(int i=0;i
当您启动调试器并尝试调试prev的值时,进程将被挂起