第一个Java程序 - 线程“main”java.lang.NoClassDefFoundError中的异常

时间:2013-02-28 22:32:33

标签: java eclipse

在Eclipse中使用Java创建了许多Android应用程序。我现在需要创建一个独立的Java程序,以便我可以创建一个sqlite数据库 - 最终将在未来的Android应用程序中使用。

我正在使用http://sqljet.com中的SQLJet库并复制了他们的示例代码。

当我尝试使用Eclipse中的“运行”按钮运行代码时,我收到以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError:        org/antlr/runtime/RecognitionException
at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine$2.runSynchronized(SqlJetEngine.java:282)
at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.runSynchronized(SqlJetEngine.java:217)
at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.readSchema(SqlJetEngine.java:276)
at org.tmatesoft.sqljet.core.table.engine.SqlJetEngine.getOptions(SqlJetEngine.java:299)
at nlmc.loader.apps4care.com.Test.main(Test.java:36)
Caused by: java.lang.ClassNotFoundException: org.antlr.runtime.RecognitionException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more

现在由于代码已被复制而没有更改,我猜这没有任何问题,我怀疑我没有正确设置我的环境。作为一个新手Java开发人员(通常是C#),我很难理解问题所在。别介意解决方案。

代码正在运行,数据库已创建。不幸的是它看起来与Android使用的版本sqlite3不兼容。回到绘图板......!

1 个答案:

答案 0 :(得分:0)

程序需要org.antlr.runtime.RecognitionException类。请在此处查看可以找到它的罐子列表:http://www.jarfinder.com/index.php/java/info/org.antlr.runtime.RecognitionException

编辑:在这里你可以看到SQLJet的所有依赖项:http://mvnrepository.com/artifact/org.tmatesoft.sqljet/sqljet/1.1.1