Dei uma pesquisada mas não achei nada sobre como mandar MAIS DE UM comando de prompt pelo java.
Exemplo do que quero no prompt:
cdc:/tempcopyc:/temp/xxxc:/temp/yyyipconfig
Se fosse para executar isoladamente cada um desses comandos seria facil, bastaria fazer assim:
Runtime.getInstance().exec("cmd.exe /K cd c:/temp");Runtime.getInstance().exec("cmd.exe /K copy c:/temp/xxx c:/temp/yyy");Runtime.getInstance().exec("cmd.exe /K ipconfig");
Só que para usar um programa em prompt aqui do trabalho preciso executar uma sequencia de instruções via prompt.
Então, resumindo, alguém saberia me dizer como executar diversos comando NO MESMO PROMPT via java?
Crie um script (batch) e mande executar essa batch. É o jeito mais fácil
thorian-maskier
Mas existem propriedades que serao dinamicas nisso, por exemplo:
tenho que mandar para uma pasta especifica um arquivo xml que acabei de receber.
Segue o código abaixo para melhor exemplificar:
File[]aFile=newFile(PASTA_ARQUIVOS).listFiles();List<File>lstFile=newArrayList<File>();// adiciona xmls em lstFilefor(Filefile:aFile){if(file.getName().substring(file.getName().length()-3,file.getName().length()).equals("xml")){lstFile.add(file);}}// le e envia todos os xmlsfor(Filefile:lstFile){try{Arquivoarquivo=newArquivo();Loglog=newLog();Elementelement;DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();DocumentBuilderdb=dbf.newDocumentBuilder();Documentdoc=db.parse(file);doc.getDocumentElement().normalize();// situação do arquivoelement=(Element)doc.getElementsByTagName("SitOpCOR").item(0);arquivo.setTipo(tipoService.findById(newInteger(element.getTextContent())));// nome do arquivo para envioarquivo.setArquivoEnvio(file.getName());// nro contratoelement=(Element)doc.getElementsByTagName("NumCedlCredRuralIF").item(0);arquivo.setNroContrato(element.getTextContent());// data de envio = data atualarquivo.setDataEnvio(newDate());/** NESTE TRECHO TENHO QUE ACESSAR UM PROGRAMA VIA PROMPT, EFETUAR LOGIN COM UM USUARIO NESTE PROGRAMA, ENVIAR O XML* ESPECIFICO PELO PROMPT, E CRIAR UM ARQUIVO COM PROTOCOLO QUE ESTE PROGRAMA ME RETORNA*/arquivo=arquivoService.save(arquivo);Situacaosituacao=newSituacao();situacao.setDescricao("Aguardando Envio");situacao=(Situacao)situacaoService.find(situacao).get(0);}catch(Exceptione){e.printStackTrace();}}}
Tudo descrito no comentario é fácil de se fazer, porém eu preciso passar diversas instruções em sequencia via prompt e estas são dinâmicas.