Vou explicar melhor, tenho um pacote model.versao.scripts.base.dados que contem varios arquivos .txt, pelo netbeans, consigo varrer todos os arquivos desse diretorio com o getResourceAsStream, mas quando eu compilo e executo a aplicação pelo .jar nao encontra os arquivos.
private void carregaDadosBase() {
String path = "/model/versao/scripts/base/dados/";
String linha = null;
String str = "";
try {
logger.info("Carregando dados base para primeira execução do sistema.");
InputStream is = getClass().getResourceAsStream(path);
String[] arqs = ArquivoUtil.getNomeArquivosPacote(is);
System.out.println("Numero arquivos encontrados: " + arqs.length);
BufferedReader leitor = null;
for (String file : arqs) {
logger.info("Arquivo carregado: " + file);
is = getClass().getResourceAsStream(path + file);
leitor = new BufferedReader(new InputStreamReader(is));
while ((linha = leitor.readLine()) != null) {
str += linha;
if (linha.endsWith(";")) {
executeNativeQuery(str);
str = "";
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String[] getNomeArquivosPacote(InputStream is) throws IOException {
List<String> lista = new ArrayList<String>();
BufferedReader leitor = new BufferedReader(new InputStreamReader(is));
String linha = null;
while ((linha = leitor.readLine()) != null) {
lista.add(linha);
}
leitor.close();
return lista.toArray(new String[lista.size()]);
}
no netbeans executando a aplicação funciona sem problemas, agora se eu executo pelo .jar nao funciona, o que esta errado?
A questao dos jars é o seguinte esses metodos estao em uma classe em determinado projeto, por exemplo projeto Model, estou fazendo os testes chamando uma main direto desse projeto, ok.
depois que funcionar pelo jar vou adicionar esse projeto em um outro projeto por exemplo ProjetoPrincipal adiciona o Model e utiliza os metodos de varredura de arquivos, nao cheguei ainda nessa parte porque nem diretamente no jar model esta funcionando, ja tentei com
Thread.currentThread().getContextClassLoader().getResourceAsStream
e nada tambem, ja estou sem ideias do pq desse problema.