Aplicação nao roda no servidor Linux, mas roda localhost

Pessoal,
Estou tentando rodar minha aplicação num servidor com Linux e nao sei onde esta o problema.
Quando rodo o codigo abaixo no localhost funciona normalmente. É criado um diretorio temporário chamado “temp”, onde os arquivos txt são gerados, zipados e depois que o usuário salva o arquivo zip, o diretorio “temp” é deletado. Aki vai um trecho do codigo que roda localhost:

            ...  //select gerando uma listaFuncionario :?:

            final Integer TAM_ARQ = listaFuncionario.size();  
            Integer j = (TAM_ARQ / 5000); 
            final Integer TOTAL_ARQ = j >= 0 ? j+1 : j;  
            PrintWriter [] arquivosGerados = new PrintWriter[TOTAL_ARQ];  

            File dirAtual = new File("");  
            File dirTemp = new File(dirAtual.getAbsolutePath(),"temp");                 //c:\Ferramentas\eclipse\temp   :?:
            dirTemp.mkdir();                                                                           //cria o diretório temp        :?:
            String nomeArquivo = dirTemp.getAbsolutePath()+"\FPSFP056";      //c:\Ferramentas\eclipse\temp\FPS056       :?:
            for(int i = 0; i < TOTAL_ARQ; i++){
                //arquivos FPS056-1.txt e etc gerados por enquanto vazios
                arquivosGerados[i] = new PrintWriter(new FileOutputStream(nomeArquivo+"-"+(i+1)+".txt"));            
            }            
            ...
            Integer TEMP_TAM_ARQ = TAM_ARQ;
            for(int i = 0; i < TOTAL_ARQ; i++){  
                Integer sequencial = 1; 
                StringBuffer header = new StringBuffer();
                StringBuffer detalhe = new StringBuffer();
                StringBuffer trailer = new StringBuffer();
                StringBuffer registro = new StringBuffer();
                ...    //preenchimento dos Stringbuffer
                String total = TEMP_TAM_ARQ+"";  
                sequencial += 1; 
                trailer.append("9").append(zeros.substring(0,5-total.length())+TEMP_TAM_ARQ).append(brancos.substring(0,595)).
                               append(zeros.substring(0,7-sequencial.toString().length())+sequencial);  
                registro.append(header).append(detalhe).append(trailer);
                //iniciar processo de geracao do arquivo...
                String [] linhas = registro.toString().split("\r\n"); 
                for(int l = 0; l < linhas.length; l++)
                    arquivosGerados[i].println(linhas[l]);    //preenchimento dos arquivos FPS056-i.txt
                arquivosGerados[i].close();
            }

Eu quero fazer o mesmo no servidor Linux. Ja tentei colocar o caminho direto, conforme trecho do codigo abaixo, mas nada adiantou. Tentei criar uma classe contendo 2 atributos do tipo String contendo o caminho completo p/ cada situação mas tb nao funcionou. O que posso estar errando?

            File dirAtual = new File("");  
            File dirTemp = new File(File.separator+"opt"+File.separator+"pasep"+File.separator,"temp");  // \opt\pasep\temp  :?:
            dirTemp.mkdir();                                                                                                             //cria o diretório temp        :?:
            String nomeArquivo = File.separator+"opt"+File.separator+"pasep"+File.separator,"temp"+File.separator+"FPSFP056";     
                                               // \opt\pasep\temp\FPS056 :?:
            for(int i = 0; i < TOTAL_ARQ; i++){
                   arquivosGerados[i] = new PrintWriter(new FileOutputStream(nomeArquivo+"-"+(i+1)+".txt"));            
            }            

Agradeço a quem ajudar.

Pode ser problema de permissão
E talvez vc precise verificar se a pasta já não existe antes de dar o mkdir novamente.

Fazendo arquivo de exportação? rsrsrs

Ele chega a criar a pasta? Se o java criou a pasta, ele geralmente tem permissão para escrever nela. Vê se o usuário Java tem direito de escrever na pasta onde ele está, tipo se el está em “var/www”, veja se ele pode escrever na pasta www

Pessoal, desculpe a demora na resposta. Agradeço as respostas comentadas, mas o problema não era permissão (arquivo de exportação pasep é horrível mesmo rs).
Consegui a seguinte solução (não sei se foi a melhor escolha): Criei uma classe com 2 atributos do tipo String, contendo os caminhos para cada situação (localhost ou servidor). No codigo só alterei o seguinte trecho:

            File dirAtual = new File(""); 
            File dirTemp = new File(NovaClasse.pasepPath,"temp"); 
            dirTemp.mkdirs();
            String nomeArquivo = NovaClasse.pasepPath+File.separator+"temp"+File.separator+"FPSFP056";  
            for(int i = 0; i < TOTAL_ARQ; i++)
                arquivosGerados[i] = new PrintWriter(new FileOutputStream(nomeArquivo+"-"+(i+1)+".txt"));   

O único problema agora é que tá gerando uma linha em branco no final do arquivo txt, o que causa erro ao validar o arquivo.

       for(int i = 0; i < TOTAL_ARQ; i++){   
                Integer sequencial = 1; 
                StringBuffer header = new StringBuffer();
                StringBuffer detalhe = new StringBuffer();
                StringBuffer trailer = new StringBuffer();
                StringBuffer registro = new StringBuffer();
                ...
               detalhe.append(zeros.substring(0,7-sequencial.toString().length())+sequencial);
               detalhe.append("\r\n");
       } 
                String total = TEMP_TAM_ARQ+"";  
                sequencial += 1; 
                trailer.append("9").append(zeros.substring(0,5-total.length())+TEMP_TAM_ARQ).append(brancos.substring(0,595)).append(zeros.substring(0,7-sequencial.toString().length())+sequencial);
                registro.append(header).append(detalhe).append(trailer);
                //iniciar processo de preechimento do arquivo txt...
                String [] linhas = registro.toString().split("\r\n"); 
                for(int l = 0; l < linhas.length; l++)
                    arquivosGerados[i].println(linhas[l]);
                arquivosGerados[i].close();
            }
            // A partir daqui começa o processo zip
                

Alguém pode me dar um help de onde estou errando para poder tirar essa linha em branco gerada no final?
Agradeço as ajudas.