Abrindo Arquivos Com Java

Fala galera! Eu a pouco tempo, estava precisando abrir arquivos via java, e encontrei alguma dificuldade com isso. Depois de muito "penar", descobri finalmente como fazer e venho aqui lhes repassar esta dica que um dia também lhes será útil! Vamos lá!
Neste exemplo, vamos executar um aplicativo usando o programa java.
Este exemplo utiliza a classe Process que está contida no pacote Lang e estende-se a classe Object . O método Runtime.exec () cria um processo natural e retorna uma instância de uma subclasse da classe Process. Este exemplo é então utilizado para controlar o processo, e, para obter a informação sobre o mesmo. A classe Process fornece métodos para a realização de entrada, saída de espera, verificação do status de saída, e destruir (matar) o processo. O Runtime.exec () pode não funcionar bem para os processos de janelas, processos daemon, processos Win16/DOS sobre Microsoft scripts do Windows, ou shell.
A classe Runtime contida no pacote java.lang e amplia o objeto da classe. Toda aplicação Java tem uma única instância de Runtime. O tempo de execução de corrente pode ser obtida usando a getRuntime (). Qualquer aplicativo não pode criar sua própria instância de classe de tempo de execução.
O método utilizado:
exec (String comando): Este método é usado para executar o comando. Aqui comando é um comando do sistema especificado. Também pode ser usada para executar qualquer exe..
import java.io.IOException;
public class RuntimeExec{
public static void main(String[] args){
try
{
Process process = Runtime.getRuntime()
.exec("notepad.exe");
}catch (IOException e)
{
e.printStackTrace();
}
}
}
public class RuntimeExec{
public static void main(String[] args){
try
{
Process process = Runtime.getRuntime()
.exec("notepad.exe");
}catch (IOException e)
{
e.printStackTrace();
}
}
}
Para executar um arquivo utilize desta forma:
String arquivo = "C:\\TESTE.DOC";
Runtime.getRuntime().exec("cmd /c "+arquivo);
Runtime.getRuntime().exec("cmd /c "+arquivo);
Se este arquivo estiver em uma pasta protegida como C:/Arquivos de Programas, seu código não funcionará a menos que, utilize da seguinte forma:
- String comando = "C:\\Arquivos de Programas\\xxx.doc";
- try {
- Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando);
- } catch (IOException e) {
- e.printStackTrace();
- }
Pois com estas chamadas de Dlls, você recebe permissão para abrir estes arquivos.
Então é isso galera, uma coisa que aparentemente é simples, mas que ainda dá muita dor de cabeça! Abraços e bons códigos!
Tem como enviar parâmetros? Exemplo:
ResponderExcluirMandar um texto para o notepad?
Caro Paulo, para esta função que desejas, deves utilizar uma biblioteca específica para isso, exemplo, para enviar dados para excel você utiliza o JexcelAPI. Provavelmente deve haver uma para o notepad... Abraços! Bruno Rafael.
ResponderExcluir