2012-04-05 70 views
0

我尝试了一段时间来制作嵌入式数据库(德比DB)的可执行JAVA应用程序,但面临一些问题,并且需要您的宝贵帮助。带有嵌入式DERBY的Java应用程序DB

即,我使用Eclipse作为环境。 我将Java应用程序导出到RUNNABLE JAR文件,并且在我的台式机上工作正常。

这个想法是使EXE doubleclick图标,并将其发送到另一台没有JAVA背景/环境的机器....因此,要将它发送给另一个用户,他们将获得exe文件,双击它并工作用它。

数据库不仅可读,因为应用程序正在表中插入数据。 所以,它工作正常,我的机器上,但是当我同一个JAR文件发送到另一台机器,我得到错误: “架构TEST不存在” 我可以看到应用程序,但没有任何数据,像有没有连接D B。所以,这是没用的。

即使我使用JSmooth,Install4j ....转换JAR到exe文件,我得到了同样的错误。因此,首先我必须让JAR文件在另一台机器上工作。

对我来说,我对数据库文件做了一些错误。

请让我知道什么信息u需要从我的身边多了,让我知道我能做到这一点。

+0

你在哪里存储你的db数据?你在哪里放db数据文件? – dash1e 2012-04-05 09:25:20

回答

2

如果应用程序试图读写时,它正在运行的数据,那么它就不能被完全包含在一个JAR文件,因为你不能把一个更新的Derby数据库JAR文件。您需要安装一些“安装过程”,也许是用户第一次双击应用程序时运行的某些逻辑,即:(a)在用户计算机上找到Derby数据库的合适位置,(b )创建数据库并定义所有表,视图等,(c)加载任何初始数据。

然后,在后续的应用程序运行时,它就能重新打开数据库,并继续使用它。

+0

感谢您的回答,但是如果我需要在用户计算机上创建所有数据库,嵌入式数据库有什么意义?要点是用户根本不应该知道数据库。当我把这个:con = DriverManager.getConnection(“jdbc:derby:myDB; create = true; user = app; password = app”); 我得到的错误是: 表/视图“PREMIER”不存在 我不明白,因为每一次应用是双击,如果表中存在它会检查,并且如果没有,它创建 好像它在JAR文件丢失,因为它的工作原理,从日食罚款 – user1314834 2012-04-05 21:36:33

+0

“的jdbc:德比:MYDB;创建=真”。告诉德比“看文件夹中的‘MYDB’,相对于当前工作目录,用于数据库文件。如果他们不在那里,请继续,静静地创建一个全新的空数据库“,所以考虑到你所看到的行为,似乎你的应用程序在每次双击时都会得到一个新的临时工作目录。您的数据要从运行中运行到运行,您需要决定磁盘上的位置以存储该数据,并且您需要在连接URL中指定* that *位置。 – 2012-04-07 14:56:10

相关问题