我在我的java应用程序中使用sqlite。当我从Netbeans运行它时,它运行良好。 sqlite db文件位于根项目目录中(与build.xml相同) 这是访问数据库文件的代码:
DriverManager.getConnection("jdbc:sqlite:database.db");
但是,当我构建项目并在netbeans之外运行jar文件时,我总是会收到此错误:no such table: table_name
我的问题:放置“sqlite db”文件的正确位置在哪里?是否可以将其打包在JAR文件中?
我试图将我的应用程序打包到一个JAR文件中(类似于Eclipse的FatJar),但我仍然遇到了这个错误。在这种情况下,我按照本博客中的说明修改build.xml:
Netbeans single JAR
我还尝试在src目录中创建一个数据库文件夹,然后将db文件放在文件夹(src / database / database.db)中并使用
访问它DriverManager.getConnection("jdbc:sqlite:src/database/database.db");
我可以在netbeans中运行它。但是当我在外面运行时,我收到了这个错误:
path to 'src/database/database.db':C:\Windows\system32\src' does not exist
我知道stackoverflow中有类似的问题,但大多数都没有具体的解决方案。如果有人找到了更好的人,请告诉我。
非常感谢。
答案 0 :(得分:2)
问题解决了!
我在执行JAR文件的方式上犯了一个错误。以前我通过右键单击它来运行JAR文件并使用Java SE二进制文件打开它。我需要这样做,因为在我的电脑中,打开JAR文件的默认程序被设置为另一个软件 事实证明,我必须将默认程序设置为Java SE Binary并双击JAR文件以运行我的应用程序。使用这种方式,我可以毫无问题地运行和访问sqlite db文件。
我希望这可以帮助那些可能遇到同样问题的人。
答案 1 :(得分:0)
可能您需要指出您的应用程序将您的应用程序基目录包含在类路径中。 运行你的应用程序的命令应该是这样的:
java -cp . YourAppMainClass
“-cp。”是命令选项,它告诉java在类路径中包含当前目录。