El motivo de este problema es que los archivos colocados en el classpath del classpath no se pueden encontrar después del empaquetado.
Este método puede crear un archivo antes de empaquetarlo, pero después de empaquetarlo en un paquete jar, se informará el error URI no jerárquico porque el archivo no se puede encontrar en template/LZGICAD1.mdb después de cambiar la ruta.
File file = new File("template/LZGICAD1.mdb");
solución:
//创建一个随即路径
File tempFolder = FileUtil
.mkdir(tmpDirPath + "\\TempMDB\\"
+ System.currentTimeMillis() + "_" + (int) (Math.random() * 10000));
ClassPathResource classPathResource = new ClassPathResource("template/LZGICAD1.mdb");
//根据类路径获取resource下面文件的流
InputStream inputStream = classPathResource.getInputStream();
//在本地生成一个文件
File file = new File(tempFolder, "LZGICAD1.mdb");
//通过类路径中的文件流来覆盖本地随机生成的文件
File mdbModel = FileUtil.writeFromStream(inputStream, file,true);
Obtenga la ruta de clase a través del nuevo ClassPathResource("template/LZGICAD1.mdb"), que no cambiará después del empaquetado, y luego obtenga la secuencia del archivo de ruta de clase a través de classPathResource.getInputStream().
Cree un archivo localmente, FileUtil.writeFromStream(inputStream, file,true) para sobrescribir el archivo local.