Project tree:
ReparacionesElectronicas
- controlador: Principal.java VClientesController.java
- modelo: Conexion.java Reparacion.java ReparacionDao.java
- recursos: Utilidades.java
- -recursos.imagenes: some .png files
- vista: VReparaciones.fxml
My "setup":
- Netbeans 15
- Java JDK 11
- JavaFX SDK 18
- Oracle XE 11.2
- I added JBDC 6 Driver (ojdbc6.jar) to my path project.
- I added JBDC Driver to my windows variables.
- I added JDBC Driver to my "libriries" of my project.
- I added a named JavaFX library with 8 files of my javafx sdk to my netbeans.
- I added JavaFX library () to my project in Properties>Libraries>Compile>classpath + Properties>Libraries>Run>modulepath
- I added "--module-path /path/to/javafx/lib --add-modules=javafx.controls,javafx.fxml" to Properties>Run>VM Options
That's my connection file:
package modelo;
import java.sql.Connection;
import java.sql.DriverManager;
import javafx.scene.control.Alert;
public class Conexion {
Connection con;
String url="jdbc:oracle:thin:@localhost:1521:XE";
String user="hr";
String pass="pass";
public Connection conectar(){
try {
Class.forName("Oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection(url,user,pass);
} catch (Exception e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Ventana de error");
alert.setHeaderText(e.getMessage());
System.out.println(e.getMessage());
alert.setContentText("Acepta para continuar");
alert.showAndWait();
}
return con;
}
public void desconexion(){
try {
con.close();
} catch (Exception e) {
System.out.println("Error al desconectarse" + e.getMessage());
}
}
}
The error with system out: Oracle.jdbc.driver.OracleDriver
edit: I added "e.printStackTrace();" under the line "alert.setHeaderText(e.getMessage());" and I get this:
java.lang.ClassNotFoundException: Oracle.jdbc.driver.OracleDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
Oracle.jdbc.driver.OracleDriver
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at modelo.Conexion.conectar(Conexion.java:23)
at modelo.ReparacionDao.listar(ReparacionDao.java:27)
at controlador.VClientesController.actualizarTabla(VClientesController.java:126)
at controlador.VClientesController.initialize(VClientesController.java:110)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2655)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3331)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3287)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3255)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3227)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3203)
at javafx.fxml@18/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3196)
at controlador.Principal.start(Principal.java:30)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
at java.base/java.lang.Thread.run(Thread.java:834)
I cannot stop thanking you for the speed with which you have helped me, it has surprised me a lot.
Another strange thing is that if I remove the imports .sql.Connection; and .sql.DriverManager; Netbeans does not suggest the correct imports to me. [1]: https://i.stack.imgur.com/OS04W.png
ERROR DRIVER SOLVED editing "Class.forName("Oracle.jdbc.driver.OracleDriver");" to Class.forName("oracle.jdbc.driver.OracleDriver"); or removing that line.
The new error:
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:465)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: javafx.fxml.LoadException:
/G:/curso/programacion/ReparacionesElectronicas/build/classes/vista/VReparaciones.fxml
at javafx.fxml@18/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2685)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3331)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3287)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3255)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3227)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3203)
at javafx.fxml@18/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3196)
at controlador.Principal.start(Principal.java:30)
at javafx.graphics@18/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics@18/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
at javafx.graphics@18/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@18/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
... 1 more
Caused by: java.lang.NullPointerException
at controlador.VClientesController.actualizarTabla(VClientesController.java:131)
at controlador.VClientesController.initialize(VClientesController.java:110)
at javafx.fxml@18/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2655)
... 17 more
Exception running application controlador.Principal
C:\Users\peked\AppData\Local\NetBeans\Cache\15\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\peked\AppData\Local\NetBeans\Cache\15\executor-snippets\run.xml:68: Java returned: 1
BUILD FAILED (total time: 1 second)
My main class:
package controlador;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
/**
*
* @author Daniel
*/
public class Principal extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/vista/VReparaciones.fxml"));
Scene escena = new Scene(root);
stage.setTitle("Reparaciones Activas");
stage.setScene(escena);
stage.show();
}
}