我在Netbeans 17中做了一个桌面项目,这是一个销售系统,它有一个可移植的SQLite数据库。在打包项目之前,我进行了测试,一切正常,连接到数据库和我想要的查询,但是当清理和构建项目之后,我将其打包到 JAR 中,运行 JAR 以查看是否一切正常时,问题就出现了仍然正常工作,但我遇到的问题是不再与数据库建立连接。我不知道为什么以及如何解决这个问题,有什么建议吗?我将非常感激。
我一直在研究可能的解决方案,其中之一是我应该配置我的项目,以便当我打包在 JAR 中时,我还包含我拥有数据库的文件。但是我得到的步骤与我在 Netbeans 17 中得到的步骤不一样,所以我找不到包含它的方法,我不知道这是否是解决方案。
JAR 应该是不变的、不可变的。您应该将数据库文件写入 JAR 外部的某个位置。每个计算机平台都有应用程序应编写其支持文件的特定位置。
请注意,SQLite 是本机软件。当您将 SQLite 引擎与您的应用程序捆绑在一起时,它只能在一种特定的操作系统和芯片架构上运行。
如果您想要一个随处运行的数据库引擎,您可以选择一些纯 Java 数据库。其中包括 H2、HSQLDB (HyperSQL) 和 Derby。 (我推荐H2。)