我使用Netbeans V6.1开发了一个Windows MS Access Java应用程序。在IDE中一切正常,包括将MS Access数据加载到jTable中。当我从Windows命令行运行它时,应用程序启动但数据未加载到jTable中。相反,我得到了错误页面,但前几个是:
java -jar doactions.jar
Picked up _JAVA_OPTIONS: -Xmx512M
Jan 28, 2016 12:22:21 AM doactions.DoActionsView <init>
SEVERE: null
java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
doActions
是应用,DoActionsView
是jTable所在的位置。似乎构建没有看到ODBC管理器中定义的MS Access数据库。任何人都可以提供任何帮助吗?
答案 0 :(得分:0)
您需要确保JDBC ODBC驱动程序jar位于类路径中。
答案 1 :(得分:0)
很抱歉,我没有看到Gord Thompson提出的问题。
Java whch的版本显示在java提示符下,应用程序的运行时版本是1.8.0_45,但Netbeans IDE的版本是1.6.0_45。我假设我已经以某种方式安装了不同版本的运行时java和JDK。由于Netbeans很乐意运行1.6版本,我将首先重新安装运行时1.6版本以查看是否可以解决问题。
我的笔记本电脑上安装了两个版本的Java。我现在已经删除了1.8版本,一切正常。非常感谢
劳伦斯
答案 2 :(得分:0)
从命令提示符启动应用程序时,它在Java 8(1.8.0_45)JVM(Java虚拟机)下运行,在NetBeans中运行应用程序时,它在Java 6(1.6.0_45)下运行。这解释了差异。
命令提示符调用在向操作系统注册的Java运行时环境(JRE)下运行。当您从java.com下载JRE时,Oracle目前正在分发Java 8.
NetBeans在Java 6下运行相同的应用程序,因为它使用的是Java 6 JDK(Java Development Kit)。 NetBeans从JDK启动其Java环境,而不是独立的JRE。
至于为什么应用程序可以在Java 6下运行并且在Java 8下失败,JDBC-ODBC Bridge已从Java 8中删除并且不再可用。有关 使用Java 8的替代方法,请参阅