我使用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
我找到了其他类似问题的解决方案,但它们似乎都与开发程序时的错误有关。我的问题是在部署之后。
答案 0 :(得分:0)
简答
将JDBC lib添加到CLASSPATH。
更长的答案
在java中至少有两个类路径是重要的;编译时类路径和运行时类路径。 您似乎遇到运行时类路径问题。
当你到一个罐子里 工件(jar文件)中不包含任何项目依赖项。 尝试运行jar时仍然需要依赖项, 所以java在运行时类路径上查找它们。
确保在运行时类路径中列出了所需的JDBC库。 通常,这意味着您需要编辑CLASSPATH环境变量(在登录环境或脚本文件中)以包含所需的jar文件(或文件)。