No se puede resolver la ruta de archivo absoluta debido a que no reside en el sistema de archivos.
Mi código:
XWPFDocument doc = new XWPFDocument(OPCPackage.open(ResourceUtils.getFile("classpath:assets/OPTIONS_" + jubilar1.getJubiLanguage().toUpperCase() + ".docx")));
Ya he intentado en lugar de .getFile(), extractJarFileFromURL o resource.getInputStream() pero nada de esto funciona. Cuando empaqueto mi proyecto y lo ejecuto como un archivo jar e intenta abrir el siguiente archivo, siempre devuelve el siguiente mensaje.
Error:
java.io.FileNotFoundException: no se puede resolver la ruta de archivo absoluta de la clase de ruta de recursos [assets/OPTIONS<em>DE.docx] porque no reside en el sistema de archivos: jar:file:/home/tkf6y/IdeaProjects/hrapps/backend/target/backend-3.0.0.jar!/BOOT-INF/classes!/assets/OPTIONS</em>EN.docx
davy.ai
El problema con el código proporcionado es que está intentando acceder a un archivo dentro de un archivo jar al ejecutar el proyecto como un archivo jar. El método
getFile()
no funciona en este caso ya que espera una ruta de archivo en el sistema, no un recurso dentro de un jar.Para acceder al recurso dentro del jar, se puede utilizar
ClassLoader
para obtener el flujo de entrada del recurso de la siguiente manera:Este código utiliza el método
getResourceAsStream()
deClassLoader
para obtener el flujo de entrada del recurso deseado. Luego pasa este flujo de entrada al constructor deXWPFDocument
para inicializar el documento.Al utilizar este enfoque, el código debería poder acceder al recurso requerido incluso al ejecutarse como un archivo jar.