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

10 respostas
java
I

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.

10 Respostas

R

E o código???

4

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.

I

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;
}
I

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

R

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.

I

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

R

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.

R

Alter para

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

I

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?

R

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

Criado 16 de fevereiro de 2017
Ultima resposta 18 de fev. de 2017
Respostas 10
Participantes 3