Bem, se meu programa der erro ele vai para uma Exception, nessa Exception gostaria de rodar uma arquivo.bat, essa bat tem a configuração de um email, caso dê algum erro na hora de rodar o programa essa bat vai me mandar um email avisando sobre o erro.
a pergunta é a seguinte, como posso chamar um arquivo.bat dentro do java, teria como eu fazer isso??
Só pra constar você pode incrementar seu tratamento de erros (com uma Classe) e criar um método para enviar um email, por exemplo usando as configurações de um Propertie File. Por exemplo:
publicclassMailExceptionextendsjava.lang.RuntimeException{privateStringcode="br.mypkg";publicStringgetCode(){returncode;}//exemplo do tutorial do GUJprotectedvoidsendMail(){Propertiesp=newProperties();p.put("mail.host","smtp2.locaweb.com.br");Sessionsession=Session.getInstance(p,null);MimeMessagemsg=newMimeMessage(session);try{// "de" e "para"!!msg.setFrom(newInternetAddress("[email removido]"));msg.setRecipient(Message.RecipientType.TO,newInternetAddress("[email removido]"));// nao esqueca da data!// ou ira 31/12/1969 !!!msg.setSentDate(newDate());msg.setSubject("assunto da mensagem");msg.setText("corpo da mensagem");// evniando mensagem (tentando)Transport.send(msg);}catch(AddressExceptione){// nunca deixe catches vazios!}catch(MessagingExceptione){// nunca deixe catches vazios!}}protectedvoidsetCode(Stringcode){this.code=code;}publicMailException(Stringcode,Stringmsg){super(msg);setCode(code);sendMail();}publicMailException(Stringcode,Stringmsg,Throwableex){super(msg,ex);setCode(code);sendMail();}}
Mas teria como eu chamar esse código dentro do meu programa, ou seja, se eu compliar este código teria como eu chamar esse .class dentro do meu código, ou seria melhor adaptá-lo dentro do meu programa??
um abraço.
D
darta.lima
Rafael, o problema agora é que não está executando a bat.
tente usar as sequencias de escape:
Runtime.getRuntime().exec("cmd.exe d:\j2sdk1.4.1\bin\BatMail.bat");
Paulo_Silveira
a barra invertida nao funciona direito no forum
darta, se esse bat apenas manda um email, voce deveria fazer isso pelo java, e NUNCA por um .bat, nunca mesmo.
pode tirar fora o cmd.exe da frente, faca apenas com o d:\bla\blah.bat
teste e rode
D
darta.lima
Paulo, concordo com voce plenamente, mas não estou consseguindo fazer um script java que envie um email, já peguei o código que tem aqui disponível, ele compila mas na hora de rodar ele dá um erro, já até postei isso na outra menssagem!!
Vou rodar o java que envia o email e depois coloco o erro aqui novamente!!
um abraço.
DavidUser
estive com mesmo problema, só que queria pegar o resultado que o prompt dá…
não conheço nenhuma outra forma de pegar esse resultado:
meu bat:
dir>registro.txt
" na execução de um bat comum ele cria o arquivo registro.txt com o resultado do dir "