Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Runnable jar不反映数据库文件中的更改_Java_Sql_Jar_Applet - Fatal编程技术网

Java Runnable jar不反映数据库文件中的更改

Java Runnable jar不反映数据库文件中的更改,java,sql,jar,applet,Java,Sql,Jar,Applet,我有一个可运行的jar,它用从SQL命令到SQLite数据库的结果填充JComboBox。此后,我更改了数据库中的一些拼写错误,并重新编译了.jar,但这些错误仍然存在。为了测试我是否在正确的路径中编辑了正确的文件,我更改了文件名do db2.db,runnable崩溃了。(未找到文件)。 我用SQLite Viewer检查表,更改就在那里,所以我把它重新命名为db.db,重新编译并运行,拼写错误又回来了 发生什么事了 Edit1:更多信息: 在OSX和Windows上测试。使用新jar的人会看

我有一个可运行的jar,它用从SQL命令到SQLite数据库的结果填充JComboBox。此后,我更改了数据库中的一些拼写错误,并重新编译了.jar,但这些错误仍然存在。为了测试我是否在正确的路径中编辑了正确的文件,我更改了文件名do db2.db,runnable崩溃了。(未找到文件)。 我用SQLite Viewer检查表,更改就在那里,所以我把它重新命名为db.db,重新编译并运行,拼写错误又回来了

发生什么事了

Edit1:更多信息: 在OSX和Windows上测试。使用新jar的人会看到更新的更改,而不是使用旧版本的人。另外,有一个人运行jetclean,它也起了作用。简单地清除java缓存不起作用

Edit2:当我在eclipse中运行它时,一切都很好。只有当我在运行同一程序的旧版本的机器上以runnable.jar的形式运行它时,才会发生这种情况。未在其上运行旧版本(包含旧数据库)的计算机不受影响


Edit3有些人建议不要将db放在.jar中。虽然我同意这样做是可行的,但我想知道为什么会发生这种情况,并实际学习一些东西,而不是绕过这个问题。

如果您的陈述是正确的,它将在您运行查询时检索数据,不管你是否再次编译jar。我能想到的唯一一件事是,您在数据库中所做的更改仅在您的会话中,外部还看不到,是吗?不,因为我保存了文件,关闭查看器,打开它,更改就在那里,但是当我重新编译db并运行jar时,就好像db从未更改过一样。在OSX和Windows上测试。使用新jar的人会看到更新的更改,而不是使用旧版本的人。另外,有一个人运行jetclean,它也起了作用。简单地清除java缓存是不起作用的。runnable JAR(重新)从头生成数据库吗?不是的。JAR包含数据库。对数据库进行编辑,然后使用jar重新打包。