请有人一次性解释如何正确访问诸如DATABASE、HTML文件等资源。
假设我的Maven JavaFX项目看起来像这样(请检查图片)。
它有它的
src/main/java
和
src/main/resources
在构建路径中
在我的资源文件夹中,有一个带有数据库的文件夹和一个带有HTML文件的文件夹。这是我访问数据库的方式,在IDE中运行时可以正常工作,但在打包或运行mvn native后的.exe文件中无法正常工作。
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:src/main/resources/DB/SeeYourUse.sqlite");
这是我如何访问我的HTML文件以在WebView中使用它
String url = Main.class.getResource("/HTML/help.html").toExternalForm();
webEngine.load(url);
这个在IDE中是可以工作的(使用jfx:run或者以Java应用程序方式运行),但是在部署后没有机会运行它。
以下是我运行并记录日志时出现的错误信息。
java.sql.SQLException: path to 'src/main/resources/DB/SeeYourUse.sqlite': 'E:\Programming\Java\Work\SeeYourUse\target\jfx\native\SeeYourUse-0.0.1-SNAPSHOT\app\src' does not exist
问题是: 如何正确加载数据库和HTML,以便能够最大限度地使用它?
Class.getResourceAsStream()
打开数据库文件,如果您的数据库不需要被修改,则将其写入临时目录,否则将其写入永久数据目录,例如用户主目录中的.myprogramname
。然后,如果已经存在,则不需要再次提取。 - Michał Zegan