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???
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.