files conectar con java ms-access netbeans jar ucanaccess

java - conectar - "No se encontrĂ³ un controlador adecuado" cuando se ejecuta desde JAR



ucanaccess jar files (2)

Esta pregunta ya tiene una respuesta aquí:

Desarrollé un pequeño juego en el cual el texto ingresado por el usuario debe ser publicado en una base de datos MS Access.

Todo funciona bien en NetBeans, pero cada vez que lo accedo desde el archivo JAR (que en última instancia es lo que necesito entregar a mi cliente), no se publica nada en la base de datos. De hecho, devuelve el siguiente error:

java.sql.SQLException: No suitable driver found for jdbc:ucanaccess://C:/Users/Paul/Desktop/Spelli/RispostiDB.mdb

Este es el código relevante:

public void postAnsDB() { String tableName = "Form"+studentGroup +"_"+studentSurname+"_"+studentName+""; answerModifier(); try{ String strurl="jdbc:ucanaccess://C://Users//Paul//Desktop//Spelli//RispostiDB.mdb"; Connection conn=DriverManager.getConnection(strurl, "", ""); Statement stmt=conn.createStatement(); //Post Student Details to DB String post = "INSERT INTO "+tableName+"(ID, responses, Correct_Response, Valid_Invalid, Marks) VALUES (''"+ansID+"'', ''"+answer+"'', ''"+correct+"'', ''"+valid+"'', ''"+marks+"'');"; stmt.executeUpdate(post); } catch(Exception e) { System.out.println("Exception found in postAnsDB: "+e); } }


Cuando construyes tu proyecto en NetBeans crea una carpeta dist en la carpeta de inicio de tu proyecto, coloca el archivo JAR para tu código en esa carpeta y también coloca las dependencias (archivos JAR para los componentes necesarios como UCanAccess, Jackcess, HSQLDB y Bits de Apache Commons) en una subcarpeta llamada lib . Debe asegurarse de que la carpeta lib se copie en la máquina de destino y se coloque en la misma carpeta que su archivo JAR principal. Mire aquí para más detalles.


Podrías elegir el método del frasco gordo. Puedes verlo aquí si usas hormiga.

Si tiene un proyecto de maven, podría tener este complemento para crear un contenedor de grasa

El beneficio de una aplicación de contenedor de grasa es que puede tener todo dentro de un contenedor y no necesita preocuparse con el directorio de lib como se mencionó en otra respuesta.

También tenga cuidado con las rutas codificadas como:

String strurl = "jdbc: ucanaccess: // C: // Users // Paul // Desktop // Spelli // RispostiDB.mdb";

que tienes en tu código