Как вы можете упаковать ObjectDB в исполняемый файл JAR?

Я хотел знать, возможно ли включить файл базы данных ObjectDB .odb в работающей банке.

Метод:

EntityManagerFactory emf = Persistence.createEntityManagerFactory(path);

принимает путь String в качестве аргумента, а не URL. Это означает, что getResource() не работает. Ни один не делает getResource.getPath() а также getResource.toString() работать, так как они каким-то образом показывают искаженное имя пути и во время выполнения файл базы данных создается вне файла JAR.

Поэтому мне было интересно, если это возможно для .odb файл для создания внутри JAR и манипулирования внутри JAR.

2 ответа

Почему вы не можете скопировать свой ресурс во временную папку, используя, например:

FileUtils.copyURLToFile()

( http://commons.apache.org/proper/commons-io/javadocs/api-release/org/apache/commons/io/FileUtils.html) И тогда вы можете использовать путь к файлу для копирования.

Временную системную папку для текущего пользователя вы можете найти по:

File tempDir = new File(System.getProperty("java.io.tmpdir"));

База данных ObjectDB должна быть файлом и не может быть ресурсом в файле.

Следование решению rsutormin кажется верным путем.

Другие вопросы по тегам