Abrir arquivo html em aplicação

:arrow: Eu preciso abrir um arquivo html em uma aplicação minha. Na verdade, o que eu preciso mesmo é que uma aplicação minha abra, externamente um arquivo html. Como eu posso fazer isso? Eu fiz do jeito que está aí embaixo, mas achei muito porco, pois só funciona em Win >= 2000.

Alguma idéia :?: Eis meu jeito porco:

[code]File help = new File(“Help/index.html”);

if(!help.canRead())
throw new FileNotFoundException(“Guilherme”);

String caminhoAExecutar = help.getAbsolutePath();

Runtime run = Runtime.getRuntime();

String[] cmd = new String[3];
cmd[0] = “cmd.exe” ;
cmd[1] = “/C” ;
cmd[2] = caminhoAExecutar;

run.exec(cmd);[/code]

Se vc estiver usando aplicação web, vc pode pegar o caminho e simplesmente dar um include pelo JSP passando o caminho.
Se vc estiver usando Swing, vc pode usar o JTextPane
Da uma olhada nesse link:
http://java.sun.com/docs/books/tutorial/uiswing/components/text.html

acho que pode te ajudar :wink:

:scrambleup: Ok, first things first: minha aplicação é desktop e usa Swing. Mas, apesar de conhecer um pouco do JEditorPane, gostaria muito de evitá-lo, pois o que quero abrir é cheio de JavaScript e Applets e não tive boa experiência com JEditorPane nesse aspecto. Além do que, não quero montar meu navegador, já que o arquivo html que vou abrir é a ajuda de um programa e, portanto, cheíssima de links daqui pra ali e não quero mesmo ter que criar um navegador… (eu mencionei que o arquivo está na minha máquina?).

Mas, obrigado assim mesmo. Mais alguma idéia? :idea:

:microwave:

Hummm… ai vc me pegou…
Acho que pelo menos por enquanto vc poderia ir usando via Runtime mesmo. Vou ver se acho alguma alternativa :wink:

http://www.guj.com.br/forum/viewtopic.php?t=13888

:roll:

Você pode usar um componente de browser, se é que existe algo assim [ok, DEVE existir] mas o ideal é não sobrecarregar seu HTML não.

É muito fácil apra uma aplicação nativa absorver os recursos de um brwoser padrão, tipo o Mozilla, e reutilizar tudo de bom que tem, mas numa aplicação java complica muito. Ainda que alguém crie um JBrowserFrame da vida, este não vai ter tantos recursos quanto os browser normais.

Você pdoe pedir pro seu usuário configurar o nome do executável do browser que ele deseja usar [isso já deu MUITO pano pra manga: http://www.guj.com.br/forum/viewtopic.php?t=12039&highlight=abrir+browser ] e abrir seu HTML lá.

Continuo insistindo que o melhor é limar seu HTML de firulas e deixar o mais simples possível, utilizando um OptionPane :wink:

[]s

Ok, segundo a sugestão do Daniel Quirino:

https://jdic.dev.java.net/

Têm um componente que permite integrar o browser [no meu infeliz caso, IE], funciona Flash, etc., mas nada substitui a simplicidade :wink:

[]s

:scrambleup: Deixa eu clarear a coisa um pouco mais: como disse, isso é um html de um Help (criado como WebHelp no RoboHelp), por isso, simplicidade nos htmls que quero abrir não depende de mim… Bom, eu dei uma alterada simples no código, quem sabe ajude… Continua meio porco, eu sei… Não quis usar aquele lance de descobrir o SO por função por falta de vergonha na cara (e tempo pra saber exatamente como funciona). Mas, para que funcione desse jeito, eu tenho que saber se a parte do Linux vai funcionar, e, infelizamente, minha cabeça foi doutrinada a pensar Windows e, a não ser que eu me mate (ou instale o Linux) nunca saberei se funciona.

try {
	File help = new File("Help/index.html");

	if(!help.canRead())
		throw new FileNotFoundException("Help não encontrado!");
        		
	String caminhoAExecutar = help.getAbsolutePath();
        		
	Runtime run = Runtime.getRuntime();
        		
	String[] cmd = new String[3];
	cmd[0] = "cmd.exe" ;
	cmd[1] = "/C" ;
	cmd[2] = caminhoAExecutar;
        		
	try{
	    run.exec(cmd);            
	}
	catch(IOException notWinXpOr2000){
	    cmd[0] = "command.exe";
	    try{
 	        run.exec(cmd);
	    }
	    catch(IOException notWinAtAll){
	        run.exec(cmd[2]);
	        System.out.println("Trying Linux... Did it work? Hope so...");
 	    }
	}
}
catch (IOException ioe) {
	System.err.println("Esquece, nao rolou!");

Mais idéias? :idea:

Algo para melhorar o código???

Gostei das idéias e, realmente, nada substitui a simplicidade!

PS.: Já desisti do MacOs…


:agrue:

  • Windows é uma bosta!
  • É sim!
  • É mesmo!
  • Então tá!
    ------------------------------[/img]

Cara, dá uma olhada no Link. Ao que aprece, você vai poder usar IE ou Mozilla, não sei se browser como o Konqueror e demais vão ficar legais, ams a promessa é boa… vê lá, este código vai te causar cabelos brancos para manter deste jeito…

[]s

Obrigado, señores!