Windows X Linux

11 respostas
M

olá pessoal
tenho um button (java swing) em que o usuário clica e abre o browser, funcionando 100 % no windows

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);

e abro tambem um pdf no windows

Runtime.getRuntime().exec("cmd.exe /C start AcroRd32.exe c:\\regulamento.pdf");

2 duvidas ?

  • como fazer para roadr no linux ?
  • tem alguma maneira de rodar direto, mesmo comando, independente do SO, ou comandos diferentes, mas que eu descubra (via java) qual SO o cara usa pra dar usar tal comando

obrigado

11 Respostas

A

Lista todas as propriedades:

System.out.println(System.getProperties());

Para saber o SO:

System.out.println(System.getProperty("os.name"));
M

Acredito que vc vai ter que fazer uma comando para cada O.S

Exemplo

if (System.getProperty("os.name").startsWith("Windows"){
        //
   } else if (System.getProperty("os.name").startsWith("Mac"){
        //
   } else if (System.getProperty("os.name").startsWith("Linux"){
        //
   }

Boa sorte

Adriel

Olá amigo, utilize a classe Desktop. Dê uma olhada na documentação que postei no link.

Abraço.

Marlon_Meneses

esse codigo abre qualquer arquivo utlizando o software configurado como padrao e independe de sistema operacional

try {
           Desktop.getDesktop().open(new File("{__LOCAL_DO_ARQUIVO__}"));
        } catch (IOException ex) {
           
        }
M
Marlon Meneses:
esse codigo abre qualquer arquivo utlizando o software configurado como padrao e independe de sistema operacional
try {
           Desktop.getDesktop().open(new File("{__LOCAL_DO_ARQUIVO__}"));
        } catch (IOException ex) {
           
        }

Realmente, porém se o arquivo não tiver um aplicativo configurado como "default" não vai funcionar muito bem.

Outra coisa vamos imaginar que você queira executar uma arquivo pdf, txt e etc... com um editor que não seja o "default"?

M

e qual comandos para abrir um pdf no linux ? e abrir o broser (firefox) ?

fuadksd

tipo, se quiser pegar o browser padrao e abrir uma url da tambem??

Andre_Rosa

marcoscorso:
e qual comandos para abrir um pdf no linux ? e abrir o broser (firefox) ?


$ firefox www.guj.com.br

mesma coisa para pdf, substituindo o “firefox” pelo nome do leitor e o www.guj.com.br pelo caminho do arquivo pdf. Geralmente é assim, mas você deve ler a documentação do programa.

M

pessoal
conforme os comentarios, montei

URI uri = null;
			URL url = null;	
			
			try {
				// define a url
				url = new URL("http://www.google.com.br");
				
				// converte a URL para URI
			    uri = new URI(url.toString());
			    
			    // abre o browser
			    Desktop.getDesktop().browse(uri);
			    
			} catch (URISyntaxException e1) {
				JOptionPane.showMessageDialog(null, "Versao - Erro 1 ! \n" + e1.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
			} catch (MalformedURLException e2) {
				JOptionPane.showMessageDialog(null, "Versao - Erro 2 ! \n" + e2.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
			} catch (IOException e3) {
				JOptionPane.showMessageDialog(null, "Versao - Erro 3 ! \n" + e3.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
			} catch (Exception e4) {
				JOptionPane.showMessageDialog(null, "Versao - Erro 4 ! \n" + e4.getMessage(), "Operador", JOptionPane.ERROR_MESSAGE);
			}

dae ele abre o browser normal ( eu uso ubuntu+firefox )
so que não esta pegando a URL
no link fica escrito “%u”

ViniGodoy

Murilo_Ferreira:
Realmente, porém se o arquivo não tiver um aplicativo configurado como “default” não vai funcionar muito bem.
Outra coisa vamos imaginar que você queira executar uma arquivo pdf, txt e etc… com um editor que não seja o “default”?

Ainda assim, é a melhor alternativa. No outro caso:

  1. Você força o usuário a instalar e usar um software que talvez não seja o favorito dele (o padrão);
  2. Para rodar o software, você recorre a uma das três péssimas alternativas:
    a. Você assume que o usuário tem o software no path;
    b. Força um caminho específico;
    c. Exige que ele digite o caminho até o software;
  3. Você deve encher seu código de ifs, um para cada SO que quiser suportar;
  4. Você torna-se dependente da interface de linha de comando do software.
ViniGodoy

Marcos, certifique-se que a opção "Desabilitar formatação BB nessa mensagem" está desmarcada quando for postar tópicos. Por isso sua tag code não está funcionando.

Quanto ao seu problema, use o método toURI da classe url, evitando chamar o toString:
try {
			// define a url
			URL url = new URL("http://www.google.com.br");

			// abre o browser
			Desktop.getDesktop().browse(url.toURI());

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null,
					"Versao - Erro ! \n" + e.getMessage(), "Operador",
					JOptionPane.ERROR_MESSAGE);
		}
Criado 7 de dezembro de 2011
Ultima resposta 1 de jan. de 2012
Respostas 11
Participantes 8