Será que vcs pódem me ajudar ? Caso sim, tenho um programa que ao clicar num botão, ele abre o winamp para tocar uma musica escolhida em um listbox, gostaria de ter um outro botão para desligar o winamp, via código em Java.
No mesmo programa tenho uma Jtable que ao dar um click no nome de uma musica da lista, abre um arquivo em PDF, no Adobe Acrobat e gostaria tambem de um botão que feche este arquivo em PDF, abaixo vou colocar os dois códigos onde abro estes programas.
Abrir Winamp
nome = txtpmusica.getText();
Runtime r = Runtime.getRuntime();
r.exec("cmd /c C:\\MUSICPLAY\\musicas\\Mp3\\\"" + nome + "\".mp3");
Adobe Acrobat Pro
private void tblmusicasMouseClicked(java.awt.event.MouseEvent evt) {
// clicou na tabela
int linha = tblmusicas.getSelectedRow();
txtmusica.setText(tblmusicas.getValueAt(linha, 0).toString());
try {
File pdfFile = new File("c:\\MusicPlay\\MusicasPdfTeclado\\" + txtmusica.getText() + ".pdf");
if (pdfFile.exists()) {
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(pdfFile);
} else {
System.out.println("Awt Desktop não disponível");
}
} else {
System.out.println("Arquivo Pdf inexistente");
}
System.out.println("Done");
} catch (Exception ex) {}
}
// Variables declaration - do not modify
private javax.swing.JButton Btnsair;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tblmusicas;
private javax.swing.JLabel txtmusica;
// End of variables declaration
Se alguém puder me ajudar, ficarei muito grato, fiquem com Deus.
Veja um exemplo onde um processo é iniciado e finalizado depois de um determinado tempo:
import java.io.IOException;
public class Main {
public static void main(String[] args) throws Exception {
try {
// inicia um processo e obtém o id do processo (nesse exemplo, o "xed" é um editor de texto do linux)
long pid = execute("xed", "%U");
// simula uma espera de 2 segundos
Thread.sleep(2000);
// Mata o processo pelo ID (esse é um comando do linux, no caso de windows teria que pesquisar como fazer isso)
execute("kill", "-9", pid + "");
} catch (IOException ex) {
System.err.println("Não foi possível executar o processo: " + ex.getMessage());
}
}
private static long execute(String ... comandos) throws IOException {
ProcessBuilder pb = new ProcessBuilder(comandos);
Process p = pb.start();
return p.pid();
}
}
Outra forma melhor é usar o método destroy junto com waitFor da classe Process.
Lucas, Primeiramente, muito obrigado pelo pronto atendimento, continuo com a minha duvida, não entendi o código que vc fez como exemplo, poderia explicar melhor como eu fecho pelo menos o “Winamp” via um botão com código do Java? O Acrobat eu ja resolvi.
OBS : Para abrir o winamp eu utilizei um código com 3 linhas, dica dada por vcs, mas agora não sei como fecha-lo.
nome = txtpmusica.getText();
Runtime r = Runtime.getRuntime();
r.exec(“cmd /c C:\MUSICPLAY\musicas\Mp3\”" + nome + “”.mp3");