0

我编写了 Test.java 来测试数据库连接。

我使用“javac Test.java”成功编译。

但是,我无法使用“java -cp ...”运行我的程序

>AssetMgmtDbTest me$ pwd
/Users/me/Workspace/tmp/AssetMgmtDbTest
>AssetMgmtDbTest me$ ls
Test.class  Test.java   classes12.jar   ojdbc6.jar
>AssetMgmtDbTest me$ java -cp ojdbc6.jar Test
Exception in thread "main" java.lang.NoClassDefFoundError: Test
Caused by: java.lang.ClassNotFoundException: Test
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

请指教。

谢谢,凯文

4

2 回答 2

2

将当前目录添加到您的类路径:

>AssetMgmtDbTest me$ java -cp ojdbc6.jar:. Test

注意罐子后面的附加:.(冒号+点)。

如果你开始使用包,事情会变得更加复杂,因为目录结构很重要。有关详细信息,请参阅此答案

于 2012-10-05T15:09:13.540 回答
0

java xxx.java :假定所有必需的类都在其类路径中或标准 java 库的一部分中。

如果您的类需要任何额外的 jar 或类,那么您必须在类路径中将其指定为 java -classpath .:xxx.jar 类名

如果引用的类是任何目录的一部分,则 java -classpath dir xxx

此外,如果将具有 main 方法的类放在某个包中,则使用 java -classpath dir pkg.xxx

于 2015-08-12T08:54:19.203 回答