Olá,
Estou enfrentando um problema ao tentar listar os arquivos de um pacote específico em um aplicativo Java executado a partir de um JAR executável.
Eu tenho um pacote chamado com.impulsesquare.textures
dentro do diretório src
do meu projeto. Quando executo o aplicativo no ambiente de desenvolvimento (por exemplo, no Eclipse), consigo listar corretamente os arquivos desse pacote usando listFiles()
.
No entanto, quando empacoto o aplicativo em um JAR executável e tento executá-lo, não consigo mais listar os arquivos do pacote. O código parece não encontrar nenhum arquivo.
Eu segui as sugestões de outras respostas online e tentei usar getResourceAsStream()
e JarFile
para acessar os arquivos dentro do JAR, mas ainda não obtive sucesso.
Alguém já enfrentou um problema semelhante ao listar os arquivos de um pacote específico em um aplicativo executado a partir de um JAR executável? Existe alguma abordagem alternativa que eu possa tentar?
Qualquer ajuda ou sugestão será muito apreciada. Obrigado!
Codigo
files = directory.listFiles();
if (files!=null) {
//PERCORRE LISTA DE ARQUIVOS
for (File file : files) {
if (file.isFile() && file.getName().endsWith(".png")) {
// PEGA O NOME DAS IMAGENS RESGATADAS
String images_name = file.getName();
// CRIA IMAGEM
ImageIcon textures = new ImageIcon(getClass().getResource("/com/impulsesquare/textures/" + images_name));
if (!images_name.contains("character")) {
// REDIMENSIONA IMAGENS
textures.setImage(textures.getImage().getScaledInstance(WIDTH_CELL, HEIGHT_CELL, Image.SCALE_SMOOTH));
}
// CRIA BLOCOS DE TEXTURA
Cell texture_block = new Cell(textures, images_name.replace(".png", ""));
texture_block.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
clicktexture(texture_block);
}
});
list_texture_blocks.add(texture_block);
menu_textures.add(texture_block, BorderLayout.NORTH);
}
}
}