Conectar una base de datos de Microsoft Access a Java usando JDBC y compilar

para un proyecto de base de datos escolar estamos haciendo un programa de base de datos (GUI de usuario y la base de datos). Usando Microsoft Access 2010, creé la base de datos y la rellené con algunos datos de muestra, la guardé en formato .mdb y la puse en mi carpeta de proyecto.

Cuando se ejecuta en eclipse, el siguiente código funciona bien, se conecta e incluso recupera la consulta. Sin embargo, encuentro que no puedo exportar el código a un jar y ejecutarlo (lo cual es necesario para el proyecto, darles una copia de trabajo de su programa en un CD o unidad flash), y tampoco puedo portar el codificar a Netbeans para que funcione, así como intentar compilar en una máquina Linux.

Supongo que este es un problema al incluir controladores o al intentar usar el acceso de Microsoft. El error que obtengo al ejecutar el jar o al ejecutar Netbeans aparece debajo del código. Entonces, pregunto, ¿cómo incluyo los controladores para que el programa sea portátil o de qué otra manera puedo abordar este problema?

Gracias por adelantado

import java.sql.*;

public class JDBCTest {
    static Connection connection;
    static Statement statement;

    public static void main(String args[]){

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=TLDATABASEDBM.mdb";
            connection = DriverManager.getConnection( database ,"",""); 

            buildStatement();
            executeQuery();

        }catch(Exception e){
            e.printStackTrace();
            System.out.println("Error!");
        }
    }

    public static void buildStatement() throws SQLException {
        statement = connection.createStatement();
    }

    public static void executeQuery() throws SQLException {

        boolean foundResults = statement.execute("SELECT * FROM tblStaff  AS x WHERE City='Calgary'");
        if(foundResults){
            ResultSet set = statement.getResultSet();
            if(set!=null) displayResults(set);
        }else {
            connection.close();
        }
    }

    public static void displayResults(ResultSet rs) throws SQLException {
        ResultSetMetaData metaData = rs.getMetaData();
        int columns=metaData.getColumnCount();
        String text="";

        while(rs.next()){
            for(int i=1;i<=columns;++i) {
                text+=""+metaData.getColumnName(i)+":\t";
                text+=rs.getString(i);
                //text+="</"+metaData.getColumnName(i)+">";
                text+="\n";
            }
            text+="\n";
        }

        System.out.println(text);

    }
}

El error mencionado anteriormente:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:207)
        at tldatabase.DataConnect.makeConnection(DataConnect.java:35)
        at tldatabase.Main.main(Main.java:24)

Respuestas a la pregunta(5)

Su respuesta a la pregunta