Linux + Firebird

OLá, esotu tentando conectar uma aplicação java ao firebird, consigo abrir o banco em pragramas administrativos mas quando tento rodar o programa aparece o seguinte erro

Resource Exception. I/O error during "open" operation for file "/root/projetos/dados/dbconf.gdb"
Error while trying to open file
null
Reason: I/O error during "open" operation for file "/root/projetos/dados/dbconf.gdb"
Error while trying to open file
null
Error Code: 335544344
SQL State: null

aí vai o Chuncho, digo Código:

public class conecta_banco {
    
	private static final String databaseURL = "jdbc:firebirdsql:10.0.0.3/3050:/root/projetos/dados/dbconf.gdb";
	private static final String user = "sysdba";
	private static final String password = "masterkey";
	private static final String driverName = "org.firebirdsql.jdbc.FBDriver";
	
	private static Driver d = null;
	private static Connection c = null;
	private static Statement s = null;
	private static ResultSet rs = null;
	private static PreparedStatement ps = null;
	
	private int ChavePrimaria = 0;
	
	
	public int GetProximo(String Campo, String Tabela){
		  try {
		  	getConexao();
			executa_select("Select Max("+Campo+") as Ultimo from "+Tabela);
			getResultSet().next();
			return getResultSet().getInt("Ultimo") + 1;
		  }
	      catch(SQLException e ){
	      	return 0;
	      	}		
		}
	/**
	 * Retorna a Conexão pronta para a execução de SQL
	 * @return
	 */
	public Connection getConexao(){
		return c;
	}
	
	/**
	 * Seta a Chave Primaria
	 * @param chavePrimaria
	 */
	public void setChavePrimaria(int chavePrimaria) {
		ChavePrimaria = chavePrimaria;
	}
	/**
	 * Retorna a ChavePrimaria
	 * @return
	 */
	public int getChavePrimaria() {
		return ChavePrimaria;
	}
	
    /**
     * Insere um registro em determinada tabela 
     *
     */
	public void InserirRegistro(){
		try {
			ps.execute();
		}
		catch(SQLException e){}
	}
	/**
	 * Realiza um Update num determinado registro
	 *
	 */
	public void AtualizarRegistro(){
		try {
			ps.executeUpdate();
		}
		catch(SQLException e){}
	}
	/**
	 * Passa parametros com ponto flutuante para as açoes SQL
	 * @param Indice
	 * @param Valor
	 */
	public void PassaParametroReal(int Indice, float Valor){
		  try {
			ps.setFloat(Indice,Valor);
		  }
		  catch(SQLException e) {}
		}
	/**
	 * Passa parametros com valor Inteiro para as açoes SQL
	 * @param Indice
	 * @param Valor
	 */
	public void PassaParametroInteiro(int Indice, int Valor){
	  try {
     	ps.setInt(Indice,Valor);
	  }
	  catch(SQLException e) {}
	}
    /**
     * Passa parametros String para as ações SQL
     * @param Indice
     * @param Valor
     */
	
	public void PassaParametroData(int Indice, Date Valor) {
	 try {
	   ps.setDate(Indice,Valor);  
	 }
	  catch (SQLException e) {}
	}
	     
	
	public void PassaParametroString(int Indice, String Valor){
	  try {	
        ps.setString(Indice,Valor);
	  }
	  catch(SQLException e) {}
	}
	/**
	 * retorna um Result Set para que se possa manipular os dados 
	 * resultantes de um  Select 
	 * @return
	 */
	public ResultSet getResultSet(){
		return rs;
	} 
	
	
	public conecta_banco() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public void executa_conexao(){
		    d = new org.firebirdsql.jdbc.FBDriver();
	    

		    try {
		    	d = java.sql.DriverManager.getDriver (databaseURL);
		    }
		    catch (java.sql.SQLException e) {
		    	System.out.println ("O sistema não conseguiu encontrar os drivers registrados: Firebird JCA-JDBC");
		    	showSQLException(e);
		    	return;
		    }
		    try {
		          c = java.sql.DriverManager.getConnection (databaseURL, user, password);
		          //System.out.println ("Conexão Estabelecida.");
		        }
		        catch (java.sql.SQLException e) {
		          System.out.println ("Não Pode estabelecer uma Conexão com o Administrador do Driver");
		          showSQLException(e);
		          return;
		        }	
	}
	/**
	 * Prepara Declaração para ser interpretada pelo ResultSet
	 * @param sql
	 */
	
	public void PreparaStatement(String sql){
	  try {	
		ps = c.prepareStatement(sql);
	  }
	  catch(SQLException E){}
	}
	
    public void executa_sql(String sql){
    	try {
    		s= c.createStatement();
        	s.executeUpdate(sql);
		} catch (SQLException e) {
			showSQLException(e);
		}
    }
	/**
	 * Executa os selects no sistema 
	 * @param sql
	 * @return
	 */
	public void executa_select(String sql){
		try {
    		s = c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
    							  ResultSet.CONCUR_READ_ONLY);
    		rs = s.executeQuery(sql);
		} catch (SQLException e) {
			showSQLException(e);
		}
	}
	
	
	public static void main(String[] args) 
	{
		conecta_banco conexao = new conecta_banco();
		
    }
	/**
	 * Lista e imprime todas as excessões de  SQL  
	 * encontradas durante a execução das rotinas
	 * @param e
	 */
	private static void showSQLException (java.sql.SQLException e)
	  {
	    java.sql.SQLException next = e;
	    while (next != null) {
	      System.out.println (next.getMessage ());
	      System.out.println ("Error Code: " + next.getErrorCode ());
	      System.out.println ("SQL State: " + next.getSQLState ());
	      next = next.getNextException ();
	    }
	  }
}