我编写了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)
请告知。
谢谢, 凯文
答案 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