问题 解决 : não pode ser resolvido para o caminho de arquivo absoluto porque ele não reside no sistema de arquivos: jar

Cenário de problema

Depois que o springboot for empacotado, leia o conteúdo do arquivo de recurso e relate um erro. A mensagem de erro é a seguinte:

cannot be resolved to absolute file path because it does not reside in the file system: jar

Ambiente problemático

Programas versão
springboot 2.1.1.LIBERAR

causa do problema

Após o empacotamento, o Spring não pode acessar os arquivos no pacote jar na forma de Arquivo.

solução

Existem duas opções:

1. Use resource.getInputStream () para ler o conteúdo do arquivo

2. Cache para um arquivo temporário, use o caminho do arquivo temporário para leitura

O código de amostra é o seguinte:

String tempPath = System.getProperty("java.io.tmpdir")+"tomcat_"+System.currentTimeMillis();
String tempFile = tempPath+File.separator+fileName;
Resource resource = new DefaultResourceLoader().getResource("classpath:META-INF/resources"+filePath);
if (resource == null) {
    
    
    return "";
}

File file = new File(tempPath);
if (!file.exists()) {
    
    
    file.mkdir();
}
IOUtil.cp(resource.getInputStream(),new FileOutputStream(new File(tempFile)));

resultado

Resolva o problema sem problemas! ! !

Resumindo

Formação contínua!

Peça elogios

Se o meu artigo é útil para todos, você pode clicar como favorito ou na parte inferior do artigo,
se houver uma boa discussão, você pode deixar uma mensagem;
se você quiser continuar a ver meus artigos futuros, você pode clique em Seguir
Você pode escanear o seguinte código QR para seguir minha conta pública: Fengye Zhixuege, confira meu último compartilhamento!
Insira a descrição da imagem aqui
Bye Bye

Acho que você gosta

Origin blog.csdn.net/u013084266/article/details/112238267
Recomendado
Clasificación