我有一个可运行的 jar,它使用从 SQL 命令到 SQLite 数据库的结果填充 JComboBox。此后,我更改了数据库中的一些拼写错误并重新编译了 .jar,但错误仍然存在。为了测试我是否在正确的路径中编辑了正确的文件,我将文件名更改为 db2.db,并且 runnable 崩溃了。(文件未找到)。我用 SQLite 查看器检查了表,并且更改在那里,所以我将它重命名为 db.db,重新编译并运行,拼写错误又回来了!
这是怎么回事?
Edit1:更多信息: 在 OS X 和 Windows 上测试。DL 一个新 jar 的人会看到更新的更改,而不是拥有旧版本的人。此外,一个人运行了 jetclean 并且它起作用了。简单地清除 java 缓存是行不通的。
Edit2: 当我在 Eclipse 中运行它时,一切都很好。只有当我在以前运行过相同程序的旧版本的机器上将它作为 runnable.jar 运行时才会发生这种情况。没有运行旧版本(包含旧数据库)的机器不受影响。
Edit3 有人建议不要将 db 放入 .jar 虽然我同意这可行,但我想知道为什么会发生这种情况并实际学习一些东西而不是解决问题。