Debugar código java quando roda shell script (arquivo .sh) que chama um jar executável

Tenho um arquivo jar (executável, com método main) que está no servidor. Estou rodando ele através de um shell script (.sh), que acesso por console por SSH. Queria saber se tem um jeito de se debugar o código, sem ficar escrevendo System.out.println dentro do código.

Devias especificar melhor o que queres, o que querias dizer com DEBUGAR ??
debugar- ver os erros???

Opa. Tem como siim … !!

Dentrou de seu arquivo sh ao chamar seu jar, passe este argumento: -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

No eclipse, vá em Run > Debug Configurations
No menu da lateral esquerda vai ter um item chamado Remote Java Application clique nele e de um New.
Dentro da nova configuração criada entre com seu projeto e em Connection Properties: Host localhost Port 8787

Ao executar seu programa pelo sh ele vai esperar até q vc execute este debug q vc criou.

Valeu. Hoje não deu pra testar a sugestão de vocês, mas segunda eu vejo.

No Eclipse, criei o ponto de debug (Debug Configurations>Remote Java Applications), mas quando clico Debug dá a mensagem:

Só uma pequena correção, o debug remoto nesse caso não é apontado para localhost, e sim para o host onde está rodando a aplicação.
Talvez você já tenha deduzido isso, mas é só pra ter certeza…

[quote=gomesrod]Só uma pequena correção, o debug remoto nesse caso não é apontado para localhost, e sim para o host onde está rodando a aplicação.
Talvez você já tenha deduzido isso, mas é só pra ter certeza…[/quote]

Sim, no Eclipse configurei o host com o endereço do servidor, e não como localhost…

teste

[quote=aluisiodsv]-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
[/quote]
Se usar n no suspend, a aplicação irá subir ignorando a conexão mas, a qualquer momento poderá iniciar a conexão para depurar a aplicação.
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=[color=red]n[/color]