aractere de escape legal seguido por um espa

Estou escrevendo um pouco de código para executar um shell script usando um processo que carrega e executa um arquivo no terminal. O problema que estou tendo é conseguir que o nome do arquivo seja reconhecido pelo terminal devido aos espaços, por exemplo:

"$ ./run_file.sh foo bar.ss" 

deve ser executado no terminal como

"$ ./run_file.sh foo\ bar.ss"

Heres o código para alterá-lo e substituí-lo:

JPanel panel1 = new JPanel();
JButton button = new JButton("Run");
button.setAlignmentX( Component.CENTER_ALIGNMENT);

button.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent event){

        run();

    }

});
//button.setAlignmentX(0.5);
panel1.add(button);
panel1.add(Box.createVerticalGlue());
panel1.add(button);

menuB = new JMenuBar();

JMenu dropD = new JMenu("File");
menuB.add(dropD);

JMenuItem loadR = new JMenuItem("Load file");
JMenuItem quit = new JMenuItem("Quit");
dropD.add(loadR);
dropD.add(quit);
loadR.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent event) {
            JFileChooser fileopen = new JFileChooser();

            int r= fileopen.showDialog(panel, "Load file");

            if (r == JFileChooser.APPROVE_OPTION) {
                File file = fileopen.getSelectedFile();
                String string = file.toString();
                string = string.replaceAll(" ", "\ ");
                //String output = aa.replaceAll("/",Character.toString(File.separatorChar));
                System.out.println(string);
                loadFile = file;
        }

       }
  });

Fui tentado usando String.replaceAll, mas get

java:66: illegal escape character

percebo que posso usar o File.separatorChar:

string = string.replaceAll(" ", Character.toString(File.separatorChar)+" ");

mas isso não parece substituir nada ... Qualquer ajuda seria muito apreciad

Obrigad

questionAnswers(4)

yourAnswerToTheQuestion