如何在可运行的JAR文件中打包ObjectDB?

时间:2016-10-29 19:32:50

标签: java jar objectdb

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

方法:

EntityManagerFactory emf = Persistence.createEntityManagerFactory(path);

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

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

2 个答案:

答案 0 :(得分: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"));

答案 1 :(得分:0)

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

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