"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acessar recursos incorporados em um JAR de forma consistente?

Como acessar recursos incorporados em um JAR de forma consistente?

Publicado em 2024-11-10
Navegar:374

How to access embedded resources in a JAR consistently?

Carregando recursos de um JAR

Ao acessar recursos incorporados em um arquivo JAR, os desenvolvedores geralmente encontram uma discrepância entre o caminho do recurso obtido durante o IDE execução e ao executar a aplicação via JAR. No contexto do IDE, os recursos são acessados ​​diretamente do sistema de arquivos, enquanto no ambiente JAR, o caminho fica adornado com o prefixo do arquivo (por exemplo, "jar:/root/app.jar!/").

Para resolver esse problema e manter um mecanismo de acesso a recursos consistente, siga os seguintes conselhos:

Utilize getResourceAsStream

Evite a tentação de carregar recursos usando FileInputStream ou abordagens semelhantes . Em vez disso, aproveite o método getResourceAsStream() para recuperar um recurso como um fluxo de entrada, a partir do qual os dados podem ser lidos convenientemente.

Evite acesso direto ao sistema de arquivos

Se o seu O código depende do acesso a recursos como arquivos únicos armazenados no sistema de arquivos, evite empacotar esses recursos em um arquivo JAR. Considere um arranjo alternativo, como mantê-los como arquivos separados.

Considere a extração temporária de arquivos

Como último recurso, você pode explorar uma solução hacky envolvendo as seguintes etapas :

  1. Verifique se o recurso está localizado em um arquivo separado dentro do JAR.
  2. Se não estiver, extraia o recurso para um arquivo temporário.
  3. Utilize o arquivo extraído conforme necessário em seu aplicativo.

Embora essa abordagem possa ser funcional, sua natureza aleatória sugere que ela deve ser empregada com cautela.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3