我似乎无法编译简单的MongoDB + Java示例:
我有这个文件 https://github.com/mongodb/mongo-java-driver/blob/master/examples/QuickTour.java
在我的命令行中,我通过执行
进行编译$ javac -cp mongo-2.10.1.jar QuickTour.java $ java -cp mongo-2.10.1.jar QuickTour
然而它给了我错误
Exception in thread "main" java.lang.NoClassDefFoundError: QuickTour
Caused by: java.lang.ClassNotFoundException: QuickTour
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)
这不是编译时错误。这是您尝试运行class
时出现的错误。而错误只是说它无法找到您尝试运行的类。这个错误几乎总是意味着你搞砸了类路径。
问题是,您忘记将参数中的当前目录包含在classpath
中。除dot(.)
文件外添加mongo.jar
作为-cp
的参数:
java -cp .;mongo-2.10.1.jar QuickTour
这假设您正在从放置它的同一目录中执行QuickTour
类。