Nota Estoy ejecutando Windows, la ruta parece que es linus porque lo escribí manualmente y así es como pienso en las rutas.Al ejecutar un programa Java en la línea de comandos, ¿qué estoy haciendo mal?
Estoy tratando de ejecutar una clase java que he creado para diagnosticar mi conexión a un databse, hace referencia al adaptador oracle jdbc.
Cuando lo ejecutas sin una ruta de clase:
%> java DBDiagnostics <connectionString>
me sale una excepción cuando se llega a la siguiente línea de código:
Class.forName("oracle.jdbc.pool.OracleDataSource").newInstance();
con la siguiente excepción:
java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleDataSource
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at DBDiagnostics.GetConnection(DBDiagnostics.java:43)
at DBDiagnostics.runDiagnostic(DBDiagnostics.java:29)
at DBDiagnostics.main(DBDiagnostics.java:18)
Creating connection.
java.sql.SQLException: No suitable driver found for lskd
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at DBDiagnostics.GetConnection(DBDiagnostics.java:55)
at DBDiagnostics.runDiagnostic(DBDiagnostics.java:29)
at DBDiagnostics.main(DBDiagnostics.java:18)
Veryfying connectivity to Database
Exception in thread "main" java.lang.NullPointerException
at DBDiagnostics.verifyTable(DBDiagnostics.java:86)
at DBDiagnostics.verifyTable(DBDiagnostics.java:76)
at DBDiagnostics.verifyDatabseConnectivity(DBDiagnostics.java:68)
at DBDiagnostics.runDiagnostic(DBDiagnostics.java:36)
at DBDiagnostics.main(DBDiagnostics.java:18)
Supongo que esto se debe a que necesito incluirlo en el classpath.
lo tanto, traté de añadir a la ruta de clase de esta manera:
%> java -classpath .:ojdbc6.jar DBDiagnostics <connectionString>
La máquina virtual se limita a decir que no puede encontrar la clase:
Exception in thread "main" java.lang.NoClassDefFoundError: DBDiagnostics
Caused by: java.lang.ClassNotFoundException: DBDiagnostics
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: DBDiagnostics. Program will exit.
Sé que esto es una pregunta yo debería saber la respuesta a, pero ¿qué estoy haciendo mal?
¿Su archivo de clase DBDiagnostics está en .JAR, o solo está en el mismo directorio desde el que está intentando ejecutar? –
¿Qué plataforma está ejecutando en Omar? –
Al ejecutar en Windows, la ruta fue algo que puse para mostrar que era una ruta en lugar de publicar la estructura de directorios de mi máquina.punto y coma en lugar de dos puntos trabajado gracias –