Não consigo abrir um diretório que contenha espaços através do java

1. Não consigo abrir um diretório que contenha espaços através do java

Kin
kinMaster

(usa Linux Mint)

Enviado em 03/03/2016 - 22:18h

Boa noite,

estou desenvolvendo uma aplicação que cria uma pasta no sistema de arquivos e abre utilizando o gerenciador de arquivos do sistema. Como estou utilizando o Linux Mint, os testes estão sendo realizados com o nemo.

Utilizando o código :

Runtime run = Runtime.getRuntime();
run.exec("nemo"+CaminhoDoDiretorio);

o aplicativo só funciona se não houver espaços. caso haja algum o nemo entende cada espaço como um diretório diferente. Já tentei usar das seguintes maneiras:

nemo /home/hash/Área de Trabalho
nemo /home/hash/Área\ de\ Trabalho
nemo "/home/hash/Área de Trabalho"
nemo "/home/hash/Área\ de\ Trabalho"

Alguém sabe onde estou errando?


  


2. Re: Não consigo abrir um diretório que contenha espaços através do java

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/03/2016 - 23:17h

Dei uma procurada e apareceram muitos links pro Stack Overflow
https://www.google.com.br/#q=directories+name+java+spaces

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Não consigo abrir um diretório que contenha espaços através do java

Kin
kinMaster

(usa Linux Mint)

Enviado em 04/03/2016 - 07:46h

listeiro_037 escreveu:

Dei uma procurada e apareceram muitos links pro Stack Overflow
https://www.google.com.br/#q=directories+name+java+spaces

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



Pesquisei um pouco sobre isso, mas ainda sim não resolveu. Estou olhando a documentação do Runtime para ver se é a maneira que o java envia os parâmetros para o Sistema Operacional.

e esse apt-get purge systemd é por qual motivo? você prefere o upstart?



4. Re: Não consigo abrir um diretório que contenha espaços através do java

Kin
kinMaster

(usa Linux Mint)

Enviado em 20/03/2016 - 10:55h

Consegui resolver!
Utilizando o run.exec() diretamente não consegui, então criei um script, salvei ele no sistema de arquivos e utilizei o " run.exec("/bin/bash script") " para executá-lo.

Segue abaixo o código:


try {
String diretorio = "/home/usuario/Área\ de\ Trabalho\"
OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream("tmp/abrirnemo"),"UTF-8");//Crio o arquivo em codificação utf-8
//String que conterá o conteúdo do meu script
String nemo = "function AbrirNemo(){\n" +
" nemo \"\""+diretorio+"\"\"\n" +
"}\n" +
"\n" +
"AbrirNemo";

output.write(nemo);//escrevo o script no sistema de arquivos
output.close();//fecho o output

File f = new File("tmp/abrirnemo");//crio um arquivo com o path do meu arquivo.
run.exec("chmod +x tmp/abrirnemo");//seto o meu arquivo com +x, que significa que ele poderá ser executado como programa
run.exec("/bin/bash "+f.getAbsolutePath());//executo o arquivo. passeio f.getabsolute para que o caminho completo seja passado ao terminal.

} catch (IOException ex1) {
JOptionPane.showMessageDialog(this, "Não foi possível abrir o Gerenciador e Arquivos.");
}


obs.: Não testei com outros gerenciadores de arquivos, como nautilus, dolphin ou thunar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts