注意 我正在运行windows,路径看起来像是linus,因为我手动输入它,这就是我对路径的看法。在命令行运行一个java程序,我做错了什么?
我想运行一个java类我已经构建诊断我的连接到数据库,它引用了oracle jdbc适配器。
当我运行它没有一个类路径:
%> java DBDiagnostics <connectionString>
我得到一个异常,当它到达下面的代码行:
Class.forName("oracle.jdbc.pool.OracleDataSource").newInstance();
但下列情况除外:
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)
我认为这是因为我需要将它包含在classpath中。
于是,我试着将它添加到类路径是这样的:
%> java -classpath .:ojdbc6.jar DBDiagnostics <connectionString>
虚拟机只是说,它不能找到类:
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.
我知道这是一个问题,我应该知道答案是,但我做错了什么?
您的DBDiagnostics类文件是在.JAR中,还是只是在您尝试运行的同一目录中? – 2009-01-30 15:27:13
你在Omar上运行什么平台? – 2009-01-30 15:31:22
在窗口上运行的路径只是我放在显示它是一个路径,而不是发布我的机器的目录结构。分号代替冒号工作谢谢 – 2009-01-30 15:35:44