Pergunta

Estou lançando uma aplicação Weblogic dentro do Eclipse através do ambiente de tempo de execução v9.2 BEA Weblogic Server. Se isso fosse correndo em linha reta a partir da linha de comando, eu faria um ctrl-BREAK para forçar um despejo de thread. Existe uma maneira de fazê-lo no Eclipse?

Foi útil?

Solução

Na verdade (graças VonC para apontar para o segmento SO), Dustin, num comentário à sua mensagem, aponta para jstack

Eu tenho que correr um pequeno aplicativo Java (com GUI) em Eclipse, eu posso ver o javaw.exe relacionado no Gerenciador de processo do Windows' e seu PID, 7088 (é ainda mais simples em Unix, é claro).

Se eu digitar em um prompt de comando jstack 7088, tenho o despejo de pilha queria por thread.
Arrefecer.

Seria melhor se pudéssemos fazer isso diretamente do Eclipse, mas que já é útil como é.

Outras dicas

Você pode fazer isso quando você está no modo de depuração:. Vá para a vista de depuração na perspectiva de depuração, clique no processo de ter lançado e clique em pause, você vai ter uma pilha gráfica de todos os seus processos

Nota: isso também funciona ao usar remoto depuração, você não precisa WebLogic lançamento de eclipse, você pode lançá-lo por conta própria, abrir as portas de depuração e criar uma "configuração de depuração aplicativo java remoto" para ele.

Eclipse Wiki: Como relatório lista um impasse todas as opções possíveis de criar um despejo de thread no Eclipse . Dependendo da situação concreta, um ou outro pode funcionar melhor - o meu favorito no Windows é a ferramenta Adaptj Stacktrace

.

StackTrace é outra opção que você pode tentar. A partir dos recursos:

despejo Tópico para Java processos em execução como um serviço Windows (como Tomcat, por exemplo), começou com javaw.exe , applets rodando dentro de qualquer navegador ou JVM incorporado dentro de um outro processo. StackTrace funciona em Windows, Linux e Mac OS X.

solução baseada se preferir UI VisualVM pode ser uma boa escolha. (É vantagem é também que ele é distribuído com o JDK)

Para tirar o despejo segmento em VisualVM:

  1. Conectar ao processo (remoto ou local) e
  2. ir para Threads (guia) -> Thread Dump (botão)

Você tentou lançar o seu eclipse com java.exe em vez de javaw.exe (em sua eclipse.ini )?

Isso poderia dar-lhe o console que precisa, como descrito no este bug e em esta mensagem .

Outras idéias (em termos de opções de Java) poderia ser derivada a partir desta outra questão SO .

Você pode se conectar através do jvisualvm e obter um despejo de thread. Apenas clique direito sobre o nó de aplicativo a partir da árvore Applications e selecione "despejo Tópico"

No Linux, pelo menos você pode fazer uma ps -ef | grep java para obter o PID e depois fazer um kill -3 PID e vai saída para o console Eclipse.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top