Nossa, nao sabia que dava pra fazer isso com java… Java é bastante diverso nessas coisas!
V
ViniGodoy
No Java você pode até gerar o ISO (que é um arquivo binário como outro qualquer), porém, não pode gravar o CD.
Para gravar o CD, baixe um aplicativo como o Nero ou o Roxio, e então use a interface de linha de comando deles através do Runtime.exec. Mas dê adeus ao multiplataforma.
L
landantas
Olá VinyGodoy!
Eu já baixei o Nero e já estou explorando o neroCmd.exe…
Quando utilizo-o via cmd ele funciona normalmente…
porém quando utilizo-o via Java(com o Runtime.exec) ele não passa os parametros…
Dá um erro como se eu não estivesse passado parametro algum para o nerocmd…
Tem alguma dica sobre isso???
Obrigado pela atenção:!::!:
Fica com DEUS:!:
E parabéns por todo o seu conhecimento te admiro muito:!:
V
ViniGodoy
Já tentou usar a classe ProcessBuilder? Ele dá mais controle que o Runtime.exec.
L
landantas
Ainda não vou estudá0la um pouco e qualquer coisa retorno…
Obrigado pela Atenção e fica com DEUS:!:
D
davidbuzatto
Complementando o Vinícius, leia esse artigo aqui:
Leitura obrigatória para quem quer trabalhar com processos externos em Java.
[]'s
L
landantas
Obrigadão pelas respostas!!
Irei implementar meu codigo e quando terminá-lo postarei aqui, pois outras pessoas podem esta com este mesmo problema…
Fiquem com DEUS:!:
L
landantas
Galera obrigado pelas dicas!!!
O meu codigo ainda está em desenvolvimento mas para inicio já está bom!
Vejam um exemplo já utilizando o NeroCmd:
importjava.io.*;importjavax.swing.JOptionPane;/** * * @author Lan Dantas */publicclassRuntime2{/** * @param args the command line arguments */publicstaticvoidmain(String[]args){try{Stringcmds[]=newString[]{"C:/program files/nero/nero 11/nero burning rom/nerocmd.exe","--listdrives"};Processprocesso=newProcessBuilder(cmds).start();InputStreamIS=processo.getInputStream();InputStreamReaderISR=newInputStreamReader(IS);BufferedReaderBR=newBufferedReader(ISR);Stringlinha;System.out.println("Saida do processo1:");while((linha=BR.readLine())!=null){System.out.println(linha);}}catch(Exceptione){JOptionPane.showMessageDialog(null,"Erro:\n"+e.getMessage());}}}
Espero que ajudem outras pessoas:!:
Depois postarei o codigo já gravando o CD:!:
Fiquem com DEUS:!:
V
ViniGodoy
Aqui tem uma classe fácil para você redirecionar o fluxo do processo para um Stream qualquer:
E aqui tem uma classe que criar um stream para um JTextArea ou JTextPane:
L
landantas
Vinicius obrigado pela dica mas com o codigo que eu postei já está bom…
Será um comando bem básico: o cliente vai clicar no botão e vai ser executado um comando para gravar o CD, não vai precisar de retornos e talz… vai precisar apenas se der erro…
Mas mesmo assim obrigado pela dica(poderá ser util outra vez)…
Fiquem com DEUS:!:
L
landantas
Olha eu de novo incomodando voces!
Este codigo que postei ele consegue passar um parametro normalmente porém no meu sistema eu preciso passar mais de um parametro em um comando só!
quando eu tento passá-los dá erro!
Retorna uma mensagem como se não tivesse passado parametro nenhum, ou que não está reconhecendo o parametro…
Alguem tem uma luz aii??
Obrigado pela atenção:!:
Fiquem com DEUS:!:
E
entanglement
Se o comando tiver N argumentos, você precisa passar cada um deles separadamente.
Por exemplo, se seu comando original era algo como “nerocmd --erase --drivename d:”, você precisa fazer algo como:
E se este codigo estiver errado(ou algo do tipo) por favor avisem-me:!:
Fiquem com DEUS e Obrigado pela atenção:!:
L
landantas
Obs: O codigo acima está continuando um CD multisessão para criar um novo CD(multi sessão) retire o “–import”
Fiquem com DEUS:!:
F
fmy_1
Olá !!!
Cara Parabéns pelo seu Post, muito bem explicado e completo !! Precisamos mais de colaboradores como você, que dê uma explicação clara de todo procedimento.