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

}