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);
}

}