System.exit(0)  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
velo
GUJ Ranger
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 797
Localização: Jaraguá do Sul - SC
Offline

Pessoas,

Como eu faço para sobreviver a um system.exit(0)?

Estou utilizando uma biblioteca (fechada) numa aplicação, e o animal que fez essa lib me botou um system.exit(0) num determinado local quando ocorre um erro.....

Tem como dar um try{}catch{} ou algo assim nesse troço???


VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

Segundo o javadoc não tem como não!

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Cara containers que dependem da VM como TOMCAT e JBOSS bloqueiam isso ....

agora como eu não sei ...

Imagina um jaguru lá dá um Sistem.exit(0) em uma aplicação teste e tira todo o resto do ar ....

hehe...

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Cara não existe a possibilidade de você descompilar essa lib e fazer o tratamento ?, se o código não estiver ofuscado pode ser uma saída.
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

Acho que os containers tipo Tomcat e JBoss bloqueiam System.exit(int status) via SecurityManager.

Não estou muito certo quanto a isso, mas se for isso mesmo, você pode extender a classe SecurityManager e bloquear System.exit(int status) com a sua implementação de checkExit(int status).

Também será necessário usar System.setSecurityManager(SecurityManager s) para fazer com que a jvm use o seu SecurityManager.

Inté.

"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

segundo os conceitos basico que tenho com java.. a kathy disse que a jvm eh encerrada qdo encontra uma desse tipo

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Cara, se isso fosse verdade, imagina a falta de segurança ao utilizarmos um servidor de aplicação rodando encima da mesma instancia de VM de sua aplicação.

Qualquer System.exit(0), faria com que o servidor inteiro fosse pro espaço.

O Google é pai de todos:
http://www.science.uva.nl/ict/ossdocs/java/tutorial/networking/security/intro.html

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
LPJava
GUJ Hacker

Membro desde: 18/04/2006 12:50:23
Mensagens: 5524
Localização: Bahia/Porto Alegre
Offline

nbluis wrote:Cara, se isso fosse verdade, imagina a falta de segurança ao utilizarmos um servidor de aplicação rodando encima da mesma instancia de VM de sua aplicação.

Qualquer System.exit(0), faria com que o servidor inteiro fosse pro espaço.

O Google é pai de todos:
http://www.science.uva.nl/ict/ossdocs/java/tutorial/networking/security/intro.html


entao ta errado o que a kathy falou?

Sun Certified Java Programmer 5.0
Blog:http://www.camilolopes.com
Twitter:www.twitter.com/camilolope
Linkedin: http://br.linkedin.com/in/camilolopes
Curso online OCPJP: http://pro.imasters.com.br/online/cursos/preparatorio-para-certificacao-java-ocjp
Autor livro Guia SCJP & JEE c/ Frameworks: http://blog.camilolopes.com.br/livrosrevistaspalestras/
[WWW]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Não, errado não tá ...

dê uma olhada no link.


If the security manager approves the exit operation, the checkExit() returns normally. If the security manager disallows the operation, the checkExit() method throws a SecurityException. In this manner, the security manager is allows or disallows a potentially threatening operation before it can be completed.


Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
plentz
Moderador
[Avatar]

Membro desde: 28/01/2004 07:34:12
Mensagens: 1584
Localização: Porto Alegre, RS
Offline

Basicamente, abra o .class, dê uma lida ache a linha que faz o system.exit() e seja feliz. Btw, que diacho de lib é essa que chama System.exit()? Não tem alguma versão que alguém sem problemas mentais já tenha metido a mão e tiro fora essa bizarrice?

Diego Plentz - Twitter
"Provide options, don't make lame excuses."
[Email] [WWW]
Sami Koivu
Virtual Machine Man
[Avatar]

Membro desde: 16/09/2004 09:49:27
Mensagens: 574
Localização: Curitiba-PR
Offline

Bom, o lance de SecurityManager é legal. Deve ser a opção menos intrusiva.

Quanto aos meios mais intrusivos (que possivelmente violam a licença da tal biblioteca fechada), mesmo se for ofuscado, dá para remover uma chamada pro System.exit() facilmente com reJ. Se não conseguir, eu mesmo posso fazer isso pra você.

(Slightly) Random Broken Thoughts on Java Security
[Email] [WWW] [Yahoo!] [MSN]
bcartaxo
JavaTeenager

Membro desde: 06/11/2006 00:35:48
Mensagens: 193
Localização: Recife - PE
Offline

Se não me engano o System.exit() mata só o processo, não a JVM.
[MSN]
nbluis
GUJ Master
[Avatar]

Membro desde: 27/05/2006 01:31:51
Mensagens: 1531
Localização: Porto Alegre - RS
Offline

Mata a instância da VM.

Juntamente com tudo que está carregado nela.

Luis Eduardo Bohrer

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
[WWW]
velo
GUJ Ranger
[Avatar]

Membro desde: 19/02/2004 18:23:55
Mensagens: 797
Localização: Jaraguá do Sul - SC
Offline

KWill wrote:Acho que os containers tipo Tomcat e JBoss bloqueiam System.exit(int status) via SecurityManager.


Rodei essa maldita lib dentro do tomcat...

Morre tudo!!!

O q eu estou fazendo é chamar um processo Runtime.getRuntime() e executando fora.

Não é bonito, não é legal, mas pelo menos funca.


VELO

Use o melhor:

Linux para servidores
Macintosh para gráficos
Palm para mobilidade
Windows para jogar paciência

SCJP 5
[Email] [MSN] [ICQ]
andredecotia
JWizard
[Avatar]

Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline

Por que que eu iria querer rodar um System.exit(0)?

abraço,
André AS

--
André AS


Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro

[Email] [MSN] [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team