1

我想知道是否可以.odb在可运行的 JAR 中包含 ObjectDB 数据库文件。

方法:

EntityManagerFactory emf = Persistence.createEntityManagerFactory(path);

将字符串路径作为参数,而不是 URL。这意味着它getResource()不起作用。两者都不起作用getResource.getPath()getResource.toString()因为它们以某种方式显示了扭曲的路径名,并且在运行时数据库文件是在 jar 文件之外创建的。

所以我想知道是否可以 .odb在 JAR 中创建文件并在 JAR 中进行操作。

4

2 回答 2

1

为什么不能使用例如将资源复制到临时文件夹:

FileUtils.copyURLToFile()

( http://commons.apache.org/proper/commons-io/javadocs/api-release/org/apache/commons/io/FileUtils.html#copyURLToFile%28java.net.URL,%20java.io.File% 29 )? 然后您可以使用文件路径进行复制。

当前用户的临时系统文件夹,您可以通过以下方式找到:

File tempDir = new File(System.getProperty("java.io.tmpdir"));
于 2016-10-29T21:43:47.730 回答
0

ObjectDB 数据库必须是文件,不能是文件中的资源。

遵循 rsutormin 的解决方案似乎是正确的方法。

于 2016-10-31T12:18:43.550 回答