Cuando compilo mi programa Java, se compila fácilmente, pero cuando ejecuto ese código me da un error: ¿Excepción en el hilo ‘Principal’?

Hola lalit

Ves la linea
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) ;

Esta línea es para cargar dinámicamente las clases en tiempo de ejecución (cuando el programa se ejecuta, no se compila). Lea aquí más sobre el método -Class.forName ()

Supongo que es nuevo en Java o tiene menos exposición en la depuración. Iré paso a paso y mencionaré puntos clave, para que sepa cómo depurar la próxima vez.

  1. El código es correcto y en adelante se está compilando correctamente;
  2. El error se produjo porque no tiene las bibliotecas Jdbc correctas en su ruta de compilación.
  3. Vea la consola, claramente menciona que no se encuentra la clase y también qué clase.

4. Vea el número de línea en su código donde la excepción surgió del registro, en su número de línea de código 9 es Class.forName

Espero que esto ayude y resuelva su consulta. Como otros, ya he mencionado cómo descargar la biblioteca y qué biblioteca. No voy a reescribir lo mismo otra vez.

No dude en consultar por más.

Si se está conectando a SQL Server, debe hacer lo siguiente

  1. Descargue el controlador de Microsoft SQL Server desde aquí Controladores JDBC de Microsoft 6.0, 4.2, 4.1 y 4.0 para SQL Server
  2. Ejecute el archivo .exe descargado, extraerá los archivos en un directorio específico y tendrá sqljdbc4.jar (para JDBC 4.0), además de algunos archivos .dll y archivos de ayuda HTML.
  3. Coloque este archivo jar en su ruta de clase, si está utilizando Java 6 y versiones superiores, vaya a sqljdbc4.jar
  4. Registrarse usando

Class.forName (“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

Y puedes conectarte usando

String dbURL = "jdbc:sqlserver://localhost\\sqlexpress;user=sa;password=secret";

Connection conn = DriverManager.getConnection(dbURL);

if (conn != null) {

System.out.println("Connected");

}

Espero que esto ayude

Verifique el número de línea donde está lanzando la excepción.
Si está ejecutando un IDE como eclipse, las excepciones verificadas se tienen en cuenta antes de la compilación del código.
Es una excepción no verificada que debe estar presente.

Este problema surge debido a una configuración de ruta incorrecta y, por lo tanto, no puede encontrar los métodos necesarios porque simplemente está buscando en el lugar equivocado.

Explicar esto sería un poco difícil, así que estoy agregando un enlace de video de YouTube de 3 minutos sobre el mismo problema y solución, Míralo.

A2A. Lalit Jhawar en tu código la línea

Class.forName (“sun.jdbc.odbc.JdbcOdbcDriver”);

Esta declaración es para cargar dinámicamente las clases requeridas en JVM en tiempo de ejecución pero no en tiempo de compilación. Es por eso que no obtuvo ningún error de compilación y obtuvo un error de tiempo de ejecución. Por lo tanto, debe agregar jdbc odbc jars en su ruta de clase.

Gracias,

Ashok Kumar

necesita agregar jdbc odbc jar en classpath. Porque el programa no puede encontrar la clase JdbcOdbcDriver en tiempo de ejecución.

Class.forName (“sun.jdbc.odbc.JdbcOdbcDriver”); cargar clase en JVM en tiempo de ron, no tiempo de compilación

Parece que intentó conectarse a la base de datos usando jdbc pero no ha incluido la dependencia para la implementación del controlador jdbc. Como sabe, la clase de controlador de carga de la API jdbc utiliza la reflexión, por lo que no obtiene ningún error de tiempo de compilación, pero cuando el cargador de clases intente buscar la clase de controlador sun.jdbc.odbc.jdbcOdbcDriver en classpath, no puede encontrarlo, por lo que obtiene una excepción de tiempo de ejecución, es decir . ClassNotFoundException

Asegúrese de tener todo el jar necesario en su lugar y classpath para el mismo se ha configurado.

Si falta jar o hay jar y classpath no está configurado en la ubicación de jar, se produce un error.

Por favor revisa eso.

Como puedo ver, desea cargar la clase y no existe en su ruta de clase, por lo que debe incluir ese jar y agregar su ruta de clase y funcionará