ClassNotFoundException Java问题

时间:2012-10-05 15:04:12

标签: java

我编写了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)

请告知。

谢谢, 凯文

2 个答案:

答案 0 :(得分:2)

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

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

请注意jar后的附加:.(冒号+点)。

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

答案 1 :(得分:0)

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

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

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

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