我想知道是否可以在可运行的JAR中包含ObjectDB数据库文件.odb
。
方法:
EntityManagerFactory emf = Persistence.createEntityManagerFactory(path);
将String路径作为参数而不是URL。这意味着getResource()
不起作用。 getResource.getPath()
和getResource.toString()
都不起作用,因为它们以某种方式显示扭曲的路径名,并且在运行期间,数据库文件在jar文件之外创建。
所以我想知道是否有可能在JAR中创建.odb
文件并在JAR中进行操作。
答案 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的解决方案似乎是正确的方法。