在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不兼容。回到绘图板......!
答案 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