在命令行运行java程序,我做错了什么? [英] Running a java program at the command line, what am I doing wrong?

查看:127
本文介绍了在命令行运行java程序,我做错了什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

注意
我正在运行Windows,路径看起来像是linus,因为我手动输入它,这就是我对路径的看法。

Note I'm running windows, the path just looks like it's linus because I typed it manually and thats how I think of paths.

我正在尝试运行一个java类我已经构建了诊断我与数据库的连接,它引用了oracle jdbc适配器。

I'm trying to run a java class That I have built to diagnose my connection to a databse, it references the oracle jdbc adaptor.

我只是在没有类路径的情况下运行它:

When I just run it without a class path:

%> java DBDiagnostics <connectionString>

当到达以下代码行时我收到异常:

I get an exception when it reaches the following line of code:

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)

我认为这是因为我需要将它包含在类路径中。

I assume that this is because I need to include it in the classpath.

所以,我尝试将它添加到类路径中:

So, I tried adding it to the classpath like this:

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

VM刚说它无法找到课程:

The VM just says it cant find the class:

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.

我知道这是一个我应该知道答案的问题,但我做错了什么?

I know this is a question I should just know the answer to, but what am I doing wrong?

推荐答案

用分号替换冒号:

java -classpath .;ojdbc6.jar DBDiagnostics <connectionString>

这篇关于在命令行运行java程序,我做错了什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆