Arquivo não abre de jeito nenhum após a criação do executável jar

Olá gente, estou com um problema, estou usando o netbeans no ubuntu para criar os meus projetos. O problema é que quando eu crio o executável .jar ele abre porém não carrega os arquivos da pasta da mesma forma de como quando ele é executado pela IDE. Já no netbeans no windows quando crio o executável jar. eu vou na pasta “dist”, ponho a pasta com os arquivos e imagem junto do arquivo.jar e funciona perfeitamente, mas quando faço a mesma coisa no ubuntu isso não acontece Alguém pode resolver esse problema? Obrigado.

E o código???

1 curtida

execute prelo pront de comando digitando o seguinte:

java -jar C:\seulocalaki\blabla\seuarquivo.jar

Ali informara no pront o erro que esta acontecendo. Normalmente é por conta de ícones q vc n definiu no pacote correto, ou que n foi compilado junto com a app.

Olá rodrigo, o código é este abaixo:

public Object recuperaArquivo(String nomeArquivo){
            Object lista = null;
             try {         
              ObjectInputStream a = new ObjectInputStream(new FileInputStream("dados//listas//"+nomeArquivo));
                 lista = a.readObject();            
                 a.close();
                      } catch (FileNotFoundException e) {
                    } catch (IOException e) {
                   } catch (ClassNotFoundException e) {
             }
    return lista;
}

Olá 4mega, o meu problema só acontece no ubuntu

Certo, vamos por passos:

1 - Troque as // por /. Use uma barra somente.
2 - Caso o passo 1 ainda não tenha resolvido, troque a linha:

ObjectInputStream a = new ObjectInputStream(new FileInputStream("dados//listas//"+nomeArquivo));

por

File arquivo = new File("dados/listas/"+nomeArquivo);
System.out.println(arquivo.getAbsolutePath());
ObjectInputStream a = new ObjectInputStream(new FileInputStream(arquivo));

Então execute o jar por linha de comando: java -jar seuJar.jar
E veja o caminho que ele vai printar. Teste no windows e no linux para ver a diferença. Caso não consiga identificar o problema, poste aqui o resultado.

Oi Rodrigo.
Fiz esses procedimentos que disse e mesmo assim continua o problema.
No Netbeans o função .getAbsolutePath() printou:

/home/isaac/NetBeansProjects/MeuProjeto/dados/listas/meuArquivo

Quando eu executo fora do netbeans a função .getAbsolutePath() printa:

/home/isaac/dados/listas

Claro que não iria funcionar, se /home/isaac/dados/listas é o caminho completo que ele printou, onde está seu arquivo nisso? Isso parece ser uma pasta e não um arquivo que possa ser lido.
Aquela sua variável nomeArquivo deve estar vindo vazia.

Qual é o caminho do arquivo que deseja abrir?
É simples, pega o caminho do arquivo (como deve ser) e aquilo que o programa printou, compara, se não está igual, tá errado. E o seu programa deve chegar ao caminho certo. Precisa debugar.

Alter para

File arquivo = new File("dados/listas/", nomeArquivo);

Obrigado Rodrigo, suas dicas me ajudaram, abriu corretamente. Mas vc sabe como eu faço pro arquivo ser aberto colocando ele na mesma pasta do executável ? Ou isso só é possivel no windows?

New File(meuArquivo)
Se n informar algum caminho ele pega de onde está sendo executado. De onde seu shell estiver posicionado.