Abrir um arquivo de outro programa a partir de minha aplicação java - swing [RESOLVIDO]  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

Olá galera, estou fazendo o levantamento das funcionalidades de um sistema que irei desenvolver para um cliente e me deparei com o seguinte problema:

Preciso fazer uma aplicação java se (swing) que "simule" o windows explorer para que o usuário possa navegar dentro das pastas de cada cliente e executar o arquivo que esta nesta pasta direto de minha aplicação.

Ex. se ele acessar uma pasta que tenha um arquivo .doc e um arquivo do autocad, ao dar um duplo click no arquivo ele chame a aplicação responsável, respectivamente word e o autocad.

Quanto a "simulação" do windows explorer creio que seja possível fazer utilizando o jtree para criação da arvore de arquivos, o problema consiste justamente na abertura do arquivo em sua respectiva aplicação.

Espero ter conseguido passar minha necessidade!

Grato a todos pela ajuda!

Abraços

This message was edited 1 time. Last update was at 12/08/2009 17:21:26


________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Para isso, você usa a classe Desktop. Dá uma olhada:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

Se você estiver usando Java 5 ou anterior, precisa fazer com Runtime.exec. Mas a solução dificilmente ficará multi-plataforma. No caso do Windows, use o comando start <nomedoarquivo>

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

ViniGodoy wrote:Para isso, você usa a classe Desktop. Dá uma olhada:
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

Se você estiver usando Java 5 ou anterior, precisa fazer com Runtime.exec. Mas a solução dificilmente ficará multi-plataforma. No caso do Windows, use o comando start <nomedoarquivo>


Olhei rapidinho aqui na web e assim q for pra casa vou implementar algo pra testar, mas aparentemente pelo q li é realmente o q preciso pois estou usando java 6!

Assim q testar te aviso se funcionou legal!

Muito obrigado pela ajuda!

________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

ViniGodoy fiz os testes aqui e essa api é exatamente o que preciso, funcionou perfeitamente!

Muito obrigado pela ajuda!

________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

Olá vini, seguindo sua dica sobre o uso do desktop api funcionou td certinho cara, ja te agradeço, agora estou com um probleminha quanto a abrir aquivos de uma maq. da rede!

Ai eu te pergunto, vc já testou a Desktop API pra abrir aquivos pela rede???

Estou aqui me matando nos forum's se eu descobrir algo antes de vc me responder posto aqui!

Mais uma vez obrigado cara!

Abraço!

________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

Resolvido!!!
O q estava ocorrendo é q a Desktop API não abre arquivo que tenha espaço em branco no nome!!!
Só travar na aplicação e concientizar o cliente...hahahh

Valeu pela força!!!

________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
gilsonsbf
JavaChild
[Avatar]

Membro desde: 15/12/2007 13:34:34
Mensagens: 122
Localização: Samambaia Norte
Offline

Tem como fazer esses mesmos procedimentos, de abrir outros programas a partir do meu sistema desenvolvido, só que em uma aplicação Web?



OpenTutoriais - Tutoriais Open-Source
http://www.gilson-filho.blogspot.com
http://www.twitter.com/gilsonfilho
[Email] [WWW] [MSN]
thiagocg
Virtual Machine Man
[Avatar]

Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline

olá gilsonsbf, testei apenas em aplicações desktop não sei te dizer quanto ao uso em aplicações web, mas creio q vc possa permitir ao usuario fazer o download do arquivo sendo assim na hora de abrir o proprio S.O. ja te da a opção de abrir o arquivo com sua aplicação default.

A não ser é claro q vc baixe uma copia do arquivo em um diretorio temporário pré-definido e então execute este arquivo por meio da Desktop API, creio q isto seja possivel tranquilamente de ser implementado.

Qualquer coisa posta ai suas duvidas e resultados.

[]'s

________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
[Email] [MSN]
gilsonsbf
JavaChild
[Avatar]

Membro desde: 15/12/2007 13:34:34
Mensagens: 122
Localização: Samambaia Norte
Offline

Em caso do aplicativo estar hospedado na internet, só teria de fazer mesmo se esse sistema interagisse com um "agente" instalado na maquina. Mas estou falando no caso desse sistema estar em um servidor local, ou seja, uma aplicação intranet usando a plataforma JEE. Se alguem já conseguiu me da uma dica.

Obrigado.



OpenTutoriais - Tutoriais Open-Source
http://www.gilson-filho.blogspot.com
http://www.twitter.com/gilsonfilho
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team