Java 尝试从jar文件连接到access数据库时出错
我有这个代码,我用它连接我的Access数据库。如果我尝试从eclipse执行它,它会工作。但是,如果我尝试创建一个jar文件,然后运行它,则会出现以下错误:Java 尝试从jar文件连接到access数据库时出错,java,ms-access,jdbc,odbc,Java,Ms Access,Jdbc,Odbc,我有这个代码,我用它连接我的Access数据库。如果我尝试从eclipse执行它,它会工作。但是,如果我尝试创建一个jar文件,然后运行它,则会出现以下错误: DEBUG [AWT-EventQueue-0] (MyLog4J.java:45) - java.lang.NullPointerException at sun.jdbc.odbc.JdbcOdbcDriver.initialize(Unknown Source) at sun.jdbc.odbc.Jd
DEBUG [AWT-EventQueue-0] (MyLog4J.java:45) - java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at esempio.Visualizzazioni_Access.<init>(Visualizzazioni_Access.java:40)
at Scontrini.abstractScontrini.apriDB(abstractScontrini.java:72)
at Scontrini.PanelScontrini.creaSwing(PanelScontrini.java:60)
at esp.TestaFrame$MenuLookDemo22$4.actionPerformed(TestaFrame.java:289)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
错误出现在以下代码行:
db = DriverManager.getConnection(url, "", "");
我的错误在哪里?您使用Odbc,因此必须添加
数据源
。但是,我必须在哪里添加数据源?我看到了,在管理工具中有一个创建数据源的过程,但是我想从USB密钥使用这个数据库,所以如果我将USB密钥插入PC1,我可以使用它,如果我将USB密钥插入另一台PC,我也可以使用它。有可能吗?是否?@ronguyen如果您使用问题中的代码中的连接字符串,那么这是不必要的。我尝试过这样做:我已经在eclipse中用java 1.6编译了这段代码。但是我的电脑里有Java1.8,所以我复制了JRE1.6目录下的所有jar文件,然后从那个文件夹启动它,程序就可以运行了。我认为问题出在java的版本上,JDBC-ODBC桥驱动程序在Java8中已经被删除了,所以出现问题并不奇怪。我建议改为使用UCanAccess,有关更多信息,请参阅。
db = DriverManager.getConnection(url, "", "");