我有一个连接到 derby 数据库的 java 桌面应用程序,derby 数据库有一些用于试验目的的虚拟数据。该应用程序与数据库一起打包(作为嵌入式 derby 数据库)。当应用程序安装在我的 Windows 7 操作系统的桌面上时,我可以按预期访问虚拟数据。但是,当应用程序安装在程序文件夹中时,我无法访问数据库以及数据库中的数据。
对此有什么解释吗?
“Program Files”文件夹对于标准用户是不可写的(并且有充分的理由)。不要在那里存储任何用户数据。
您需要将数据库文件放入不同的文件夹中。这就是例如%APPDATA%
在 Windows 中的意图。
您可以使用该方法获取%APPDATA%
环境变量的值。System.getenv()
在 Java 中,您还可以将其放入目录的user.home
子目录中System.getProperty("user.home")