如何从JAR文件中引用正确的JDBC驱动程序?

时间:2017-02-08 17:17:24

标签: java sqlite jdbc intellij-idea jar

我使用IntelliJ IDEA作为我的Java IDE。

我的Java项目使用的是SQL数据库,在IntelliJ中,程序运行完美。

但是,在编译为JAR文件时,我始终收到臭名昭着的import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtMultimedia import * class Animation_area(QWidget): def __init__(self): QWidget.__init__(self, None) self.frame_no = 0 self.images = [QImage("images/frame-" + str(i + 1) + ".png") for i in range(20)] timer = QTimer(self) timer.timeout.connect(self.update_value) timer.start(50) self.pause = False def paintEvent(self, e): p = QPainter(self) p.drawImage(QRect(0, 0, 320, 320), self.images[self.frame_no]) def update_value(self): if not self.pause: self.frame_no += 1 if self.frame_no >= 20: self.frame_no = 0 QSound.play("sounds/rabbit_jump.wav") self.update() def PlayandPause(self): self.pause = not self.pause class Simple_animation_window(QWidget): def __init__(self): QWidget.__init__(self, None) self.anim_area = Animation_area() layout = QVBoxLayout() layout.addWidget(self.anim_area) self.PlayandPauseButton = QPushButton("Pause") self.PlayandPauseButton.clicked.connect(self.clicked) layout.addWidget(self.PlayandPauseButton) self.setLayout(layout) self.setMinimumSize(330, 400) def clicked(self): self.anim_area.PlayandPause() if self.sender().text() == "Play": self.PlayandPauseButton.setText("Pause") else: self.PlayandPauseButton.setText("Play") def main(): app = QApplication(sys.argv) w = Simple_animation_window() w.show() return app.exec_() if __name__ == "__main__": sys.exit(main()) 错误。

我确实将No suitable driver found for jdbc:sqlite库导入到我的项目中以供使用。无论我做什么,我都无法让JAR在IDE之外运行。

我尝试将sqlite-jdbc-3.15.1.jar文件放在我的JAR项目的“/ lib”目录中(就像我所有的其他库一样)。

这是我的Connection语句,其中引发了错误:

sqlite-jdbc-3.15.1.jar

我找到了其他类似问题的解决方案,但它们似乎都与开发程序时的错误有关。我的问题是在部署之后。

1 个答案:

答案 0 :(得分:0)

简答

将JDBC lib添加到CLASSPATH。

更长的答案

在java中至少有两个类路径是重要的;编译时类路径和运行时类路径。 您似乎遇到运行时类路径问题。

当你到一个罐子里 工件(jar文件)中不包含任何项目依赖项。 尝试运行jar时仍然需要依赖项, 所以java在运行时类路径上查找它们。

确保在运行时类路径中列出了所需的JDBC库。 通常,这意味着您需要编辑CLASSPATH环境变量(在登录环境或脚本文件中)以包含所需的jar文件(或文件)。