Upload de arquivo para servidor local e remoto

Tenho uma aplicação web que faço upload de arquivo usando JSF, segue codigo:

[code]
private UploadedFile uploadItem;
private File file;
private byte[] byteArray;

public void listener(FileUploadEvent event) throws Exception {
    uploadItem = event.getUploadedFile();
    System.out.println("Nome do arquivo enviado: " + uploadItem.getName());
    System.out.println("Tipo do arquivo enviado: " + uploadItem.getContentType());
    System.out.println("Tamanho do arquivo enviado: " + uploadItem.getSize());
    System.out.println("InpuStream: " + uploadItem.getInputStream());
    System.out.println("Byte: " + uploadItem.getData());
    byteArray = uploadItem.getData();
    //exibe caminho completo da aplicação
    String caminho = System.getProperty("user.dir");
    //System.out.println(caminho+"\\");
    caminho += "\\";
    String c = "C:\\Users\\fabio.cunha\\Documents\\Backup\\Backup\\NetBeansProjects\\Curriculo\\";
    file = new java.io.File(c + uploadItem.getName());
    FileOutputStream in = new FileOutputStream(file);
    in.write(byteArray);
    in.close();

}[/code]

O codigo funciona perfeitamente, porém apenas quando uso ele localmente na minha maquina, quando envio ele pro servidor que é linux, como o caminho é diferente simplesmente não funciona, como posso usar um caminho para que ele seja o mesmo para meu servidor local e no servidor remoto?
ps: A pasta Curriculo é onde está minha aplicação fica, tanto no servidor local quanto no remoto

Troca o \ por /

Funciona para windows tb. [=

Entendo, mas quando uso o comando

String caminho = System.getProperty("user.dir"); System.out.println(caminho+"\\");
Ele imprime o caminho desse jeito

C:\Users\fabio.cunha\Documents\Backup\Backup\NetBeansProjects\Curriculo\

Porém pra funcionar com a classe ‘File’ a barra tem q ser assim “\” ou “/” como vc mencionou, somente uma ‘’ fica como caractere de escape e ai não funciona
Eu até passei a String na mão no meu exemplo, mas porém a idéia era que eu não precisasse passar na mão e sim usando alguma instrução do próprio java que pegasse o caminho correto da aplicação independente de que tipo de servidor(ou diretório) ele esteja.

No caso o comando

System.getProperty("user.dir");  

consegue pegar o caminho correto, porém não adianta devido ele gerar somente uma ‘’ para descrever o caminho

Padrão windows é com , unix /.

Se vc tentar com / no windows dá erro?

Vc pode fazer um if louco então. If windows usa \ se linux usa /, mas não vejo por que uma vez que / funciona para os dois.

Acho q não consegui explicar direito,
no caso na minha maquina local o diretorio seria

C:/Users/fabio.cunha/Documents/Backup/Backup/NetBeansProjects/Curriculo/

Porém quando eu enviasse o projeto para o servidor o caminho vai ser outro
na verdade eu nem sei qual é, mas deve ser algo do tipo

/home/nomedoservidor/tomcat/aplicacao(to chutando o caminho)

O que eu estou querendo é pegar o caminho absoluto e usar ele junto com o ‘new File’ para criar meus arquivos.
Por isso tentei usar o comando

System.getProperty("user.dir");para trazer o caminho absoluto, e para funcionar com o ‘new File’ precisa ser ‘\’ ou ‘/’, mas ele ja traz formatado com ‘’ no windows. Por isso queria uma maneira alternativa de pegar esse caminho absoluto q não fosse usando o System.getProperty("user.dir"); para que ele trouxesse formatado o caminho usando ‘/’ ou ‘\’.
Não adianta passar a String do caminho na mão pq ele vai ter caminhos diferentes quando estou desenvolvendo na minha maquina(windows) e quando ele estiver no servidor(linux)

Espero que eu tenha conseguido explicar direito, t+

Pega o caminho como String e manda um seuCaminho.replaceAll("\", “/”);

SE não me engano é assim.

user.dir traz oq no linux e no windows? Tem como você colocar?

user.dir no windows traz
C:\Users\fabio.cunha\Documents\Backup\Instalados\apache-tomcat-6.0.33\bin
no linux eu não sei o q ele traz, mas sua idéia de usar
seuCaminho.replaceAll("\", “/”);
é uma boa idéia, vou tentar