Runtime.getRuntime().exec() no Linux

Estou fazendo uma aplicação no linux e assim q executo ela pela primeira vez é criado um arquivo estou querendo mudar as permissoes desse arquivo usando o Runtime.getRuntime().exec() mas quando o caminho do arquivo esta em pasta com nomes compostos ele nao executa o comando descrito no Runtime… Exemplo:

Arquivo localizado em: /home/usuario
Assim que é rodado ele cria o arquivo e as permissoes sobre ele sao alteradas normalmente

Arquivo localizado em: /home/usuario/Área de Trabalho
Assim que é rodado ele cria o arquivo normalmente mas o comando do Runtime (chmod go-r) nao é executado

Segue codigo abaixo:

private void criaLock(){ try { File file = new File(System.getProperty("user.dir")+ File.separator +"configuracoes" + File.separator + "lock.txt"); System.out.println("TrayIconLinux.criaLock()"); boolean success = file.createNewFile(); if (success) { try { Process p = Runtime.getRuntime().exec("chmod go-r "+(System.getProperty("user.dir") + File.separator +"configuracoes" + File.separator + "lock.txt")); System.out.println("TrayIconLinux.criaLock() ==> Criando novo arquivo"); } catch ( FileNotFoundException e ) { JOptionPane.showMessageDialog(null,"Arquivo não encontrado."); } catch ( IOException e ) { JOptionPane.showMessageDialog(null,"Entrada inválida."); } }else{ System.out.println("TrayIconLinux.criaLock() ==> Arquivo já existente"); } } catch (IOException e) { } }

Agradeço desde já

O nome do diretório contém espaços (argh!) então é necessário cercar o nome com aspas simples ( ’ ) para evitar que o comando chmod do Linux/Unix se perca.