| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 11:03:33
|
tiago_stos
JavaChild
Membro desde: 02/06/2006 07:25:09
Mensagens: 115
Localização: Caçapava - SP
Offline
|
Bom dia pessoal.
Estou desenvolvendo um programa que irá usar alguns comandos do do programa ImageMegick. Consigo executar o programa perfeitamente, porém estou tendo problemas no Linux quando um diretório ou um arquivo tem espaços em seus nomes. No Windows esse problema foi facilmente resolvido colocando aspas (") no caminho do arquivo, ficando da seguinte forma:
Porém no Linux isso não funcionou. Outra tentativa no Linux foi acrescentar barras no nome do arquivo e/ou diretório antes do espaço, da forma como é feito no shell do Linux, como no exemplo:
Porém também não obtive sucesso.
Alguém sabe como resolver esse problema?
|
Econodin - Organizador Financeiro Pessoal
e-Karros - Sistema de controle de manutenção automotiva
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 11:06:38
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
ou
Eu aconselharia a segunda forma - é mais clara, mais simples e mais próxima ao que você faria no Linux "manualmente". (Espaços em nomes de diretórios não são "kosher" em Unix ou Linux, já que a maior parte dos programas e scripts tem problemas com eles. Tente não usá-los.)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 11:57:08
|
tiago_stos
JavaChild
Membro desde: 02/06/2006 07:25:09
Mensagens: 115
Localização: Caçapava - SP
Offline
|
Cara, pior tentei das duas formas e não funcionou... não acredito que esteja fazendo algo de errado já que para arquivos e diretórios sem espaços o comando funciona.
Sobre não usar arquivos e diretórios com espaços nos nomes, eu já tenho como regra não utilizar, porém como pretendo distribuir esse programa é melhor eu descobrir como resolver isso.
Alguém tem mais alguma dica?
|
Econodin - Organizador Financeiro Pessoal
e-Karros - Sistema de controle de manutenção automotiva
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 12:02:09
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Hum... eu não gosto muito de usar o Runtime.exec que recebe apenas um parâmetro. Prefiro aquele que recebe um array como parâmetro, para que o próprio Runtime.exec ponha as aspas necessárias para o comando não se enrolar todo.
De qualquer maneira, "Imagem 01.JPG" é diferente de "Imagem 01.jpg" e não sei se o "identify" está no PATH do usuário que executa seu programa Java. (Por exemplo, se esse programa Java é o Tomcat e ele é iniciado como daemon, ele deve usar outro PATH que não o do seu usuário. )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 13:24:31
|
tiago_stos
JavaChild
Membro desde: 02/06/2006 07:25:09
Mensagens: 115
Localização: Caçapava - SP
Offline
|
Então, o caminho e nome do arquivo está correto e o identify está instalado... Bom, to no inicio do projeto ainda, depois vou validar todas essas informações para que não haja nenhum erro.
Vou experimentar com o Runtime.exec que recebe o array. Muito obrigado pelas dicas.
|
Econodin - Organizador Financeiro Pessoal
e-Karros - Sistema de controle de manutenção automotiva
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2009 15:19:46
|
tiago_stos
JavaChild
Membro desde: 02/06/2006 07:25:09
Mensagens: 115
Localização: Caçapava - SP
Offline
|
entanglement, realmente passando as informações como um array de Strings funciona. Ficou da seguinte maneira:
Muito obrigado.
|
Econodin - Organizador Financeiro Pessoal
e-Karros - Sistema de controle de manutenção automotiva
|
|
|
 |
|
|