将数据加载到JavaGUI中

将数据加载到JavaGUI中,java,xml,javafx,Java,Xml,Javafx,我正在开发一个JavaGUI,它需要从XML文件中读取数据。最终,我希望提供一个.exe或.jar文件,其中存储了所有需要的内容。这些数据库应该得到自动分析 我的问题是:在哪里和我应该以哪种格式存储文件,以便总是自动找到它们 XML文件应该是用源代码编写的,但我认为这不是解决这个问题的好方法 提前感谢。如果只读取这些文件,您可以将它们作为资源存储在类路径中。如果资源文件与类位于同一目录中,则可以从该类的实例中访问资源,如: final URL myResource = getClass().ge

我正在开发一个JavaGUI,它需要从XML文件中读取数据。最终,我希望提供一个.exe或.jar文件,其中存储了所有需要的内容。这些数据库应该得到自动分析

我的问题是:在哪里我应该以哪种格式存储文件,以便总是自动找到它们

XML文件应该是用源代码编写的,但我认为这不是解决这个问题的好方法


提前感谢。

如果只读取这些文件,您可以将它们作为资源存储在类路径中。如果资源文件与类位于同一目录中,则可以从该类的实例中访问资源,如:

final URL myResource = getClass().getResource(nameOfFile);
final InputStream myResourceStream = getClass().getResourceAsStream(nameOfFile);
静态访问是可能的,如:

final URL myResource = MyClass.class.getResource(nameOfFile);
nameOfFile还可能包含一个路径,用于在包结构中导航:

final Resource myResource = getClass().getResource("subpackage/data.xml");
final Resource myResource = getClass().getResource("/com/myCompany/somePackage/data.xml");

顺便说一下:我建议使用java。nio.*类来访问文件。一个巨大的好处是,如果需要,它允许您设置自定义文件系统实现。

谢谢,在我的IDE中执行时,它可以正常工作,但在构建.exe工件和执行.exe程序时,它不起作用(它找不到目录)。你知道解决这个问题的方法吗?@lospollos我对从java项目创建可执行文件一点也不熟悉。可能您的流程没有将资源包含到编译目标中。也许你错过了一个选择?或者您需要在.exe中包含第二个文件?让我们忘掉.exe的事情,假设我想要构建一个jar应用程序。您知道我如何在源代码中设置路径,以便在交付工具时加载数据库吗?例如,数据库在一个特定的文件夹中,jar文件在另一个文件夹中。如果您的意思是提供DB access的配置,那么将java属性文件作为资源可能是一个好方法。如果你的意思是设置windows路径变量:看在上帝的份上,不要!系统配置不应由应用程序控制。