Läuft ein java-Programm auf der Kommandozeile, was mache ich falsch?

Hinweis
Ich bin mit windows, den Pfad einfach wie es aussieht ist linus da tippte ich es manuell und das ist, wie ich glaube, von Pfade.

Ich versuche zu laufen, eine java-Klasse, die ich gebaut habe, um zu diagnostizieren, meine Verbindung zu einer Datenbank, sondern verweist auf die oracle-jdbc-Adapter.

Wenn ich führen Sie es einfach ohne einen class-path:

%> java DBDiagnostics <connectionString>

Ich erhalte eine Ausnahme, wenn es reicht die folgende code-Zeile:

Class.forName("oracle.jdbc.pool.OracleDataSource").newInstance();

mit der folgenden Ausnahme:

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)

Ich gehe davon aus, dass dies ist, weil ich es in den classpath.

So, ich versucht, indem Sie dem classpath wie diese:

%> java -classpath .:ojdbc6.jar DBDiagnostics <connectionString>

Die VM nur sagt, es kann nicht finden den Klasse:

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.

Ich weiß, das ist eine Frage, die ich sollte nur wissen, die Antwort, aber was mache ich falsch?

  • Ist Ihre DBDiagnostics class Datei in eine .JAR, oder ist es einfach in das gleiche Verzeichnis, das Sie versuchen zu laufen?
  • Auf welcher Plattform laufen Sie auf Omar?
  • Läuft auf windows der Pfad war einfach etwas, das ich in zu zeigen, es war ein Pfad, sondern als Veröffentlichung der Verzeichnisstruktur meines Rechners. Semikolon statt Doppelpunkt gearbeitet Dank
InformationsquelleAutor Omar Kooheji | 2009-01-30
Schreibe einen Kommentar