jdk1.7之後使用命令:
java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -jar test-remove-debug.jar
jdwp:是 Java Debug Wire Protocol的縮寫
server=y表示是監聽其他debugclient端的請求
address=8000表示服務會在端口號8000監聽debug請求,客戶端必須設置這個端口號才能進行dubug
suspend表示是否在調試客戶端建立連接之後啓動 VM。如果爲y,那麼當前的VM就是suspend直到有debug client連接進來纔開始執行程序。如果你的程序不是服務器監聽模式並且很快就執行完畢的,那麼可以選擇在y來阻塞它的啓動。
先在程序中打好斷點,然後
Run-->Debug Configurations…-->Remote Java Application-->右鍵New-->填寫Host和Port(例如,Host:localhost,Port:8000)-->Debug
Eclipse debug快捷鍵:
F5 Step into
F6 Step over
F7 Step out
F8 continue to the next breakpoint
jar包代碼:
public class TestRemoveDebug {
public static void main(String[] args) throws InterruptedException {
int a = 1;
int b = 2;
int c = a + b;
Thread.sleep(20000);
c= c*4;
System.out.println("===:"+c);
Thread.sleep(20000);
}
}