Netbeans 使用嵌入式数据库打包和部署java桌面应用程序

Netbeans 使用嵌入式数据库打包和部署java桌面应用程序,netbeans,desktop-application,derby,executable-jar,Netbeans,Desktop Application,Derby,Executable Jar,我创建了一个简单的桌面应用程序,它使用netbeans中的嵌入式数据库(derby)。在ide内的表中添加两个条目并再次运行后,效果非常好。但是当我双击ide外的可执行jar文件时,会显示一个空数据库,原因可能是什么?我还想知道如何在客户端计算机上运行此操作。我尝试将jar和lib文件添加到文件夹中,并将其转换为rar文件,但在解压缩后找不到jar文件。我对此不熟悉,希望您能提供帮助。提前感谢有两个常见的原因可以解释为什么您会得到一个空的jar文件数据库意外: 你在说",;create=true

我创建了一个简单的桌面应用程序,它使用netbeans中的嵌入式数据库(derby)。在ide内的表中添加两个条目并再次运行后,效果非常好。但是当我双击ide外的可执行jar文件时,会显示一个空数据库,原因可能是什么?我还想知道如何在客户端计算机上运行此操作。我尝试将jar和lib文件添加到文件夹中,并将其转换为rar文件,但在解压缩后找不到jar文件。我对此不熟悉,希望您能提供帮助。提前感谢

有两个常见的原因可以解释为什么您会得到一个空的jar文件数据库意外:

  • 你在说",;create=true”并使用相对数据库名称,这意味着您正在授予Derby权限,以便在数据库不存在的情况下创建新的数据库,然后您的Derby系统主目录将从一次运行更改为另一次运行,因此每次都会在不同的当前目录中创建数据库的新副本

  • 连接到数据库时使用的是不同的用户名。由于您连接的用户名隐式地指定了表所驻留的模式,因此使用不同的用户名会导致您看到一组完全不同的表,或者根据您的观察方式,看到一个空数据库


  • 关于JAR和RAR等,关键的事情是正确地管理您的类路径。在运行时,您需要在类路径中包含Derby代码。有很多种方法可以实现这一点,因此您需要非常明确地说明您的具体情况,以便其他人能够给您提供帮助。

    谢谢,这是一个教训。那么我可以将db文件与jar文件打包在一起吗?因为正如您在第一种情况下所说的,当db文件与jar在同一文件夹中时,db工作正常。是的,您可以用应用程序预打包数据库。具体细节取决于数据库是只读的还是可更新的。如果是只读的,从这里开始:如果数据库是可更新的,那么您希望在启动时将安装过程解压缩到本地文件夹。derby用户邮件列表是联系做过这件事或类似事情的其他开发人员的好方法。