opa galera,
estou com um problema aqui e nao to conseguindo resolver, quando crio o JAR o jogo não procura a fase ( eh um arquivo de texto que contem informaçoes para montar a fase) dentro do JAr na pasta levels, ele procura no mesmo diretorio que o jar, eu sei que eh um problema de path mais nao to conseguindo resolve.
Informação não sei se vai ajudar
LabelArq.setText("Digite o nome da Fase: ");
LabelArq.setBounds(new Rectangle(20, 5, 150, 20));
TxtArq.setBounds(new Rectangle(180, 5, 120, 20));
Codigo Versao original
public void actionPerformed(ActionEvent a) {
try {
//Tenta abrir o arquivo para leitura
FileReader leitor = new FileReader(TxtArq.getText());
Engine i= new Engine();
i.LeArq(leitor);
leitor.close();
startTime();
jPanel1.requestFocus();
}
catch (IOException q) {
JOptionPane.showMessageDialog(null,"Erro ao tentar carregar a fase!","Erro",JOptionPane.INFORMATION_MESSAGE);
}
}
});
TxtArq.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
jPanel1.requestFocus();
}
});
Algumas tentativas de arrumar
ButtonLoad.addActionListener(new ActionListener() {
/**
* Le Arquivo passado pelo usuario apos clique no Botao Carrega.
*/
public void actionPerformed(ActionEvent a) {
try {
//Tenta abrir o arquivo para leitura
String path = getClass().getResource("levels/"+TxtArq.getText()).getFile();
System.out.println(path);
FileReader leitor = new FileReader(path);
Engine i= new Engine();
i.LeArq(leitor);
leitor.close();
startTime();
jPanel1.requestFocus();
}
catch (IOException q) {
JOptionPane.showMessageDialog(null,"Erro ao tentar carregar a fase!","Erro",JOptionPane.INFORMATION_MESSAGE);
}
}
});
ele consegue puxar a fase sozinho quando executo pelo netbeans, ( antes tinha que passar "build/classes/levels/br.txt") quando executava pelo netbeans.
so que ainda nao funfa quando crio o Jar e executo a partir do jar =(
quando executo pelo JAR usando essa modificação acima teho uma saida assim do meu print
qa@diogo:~/starworms/dist$ java -jar starworms.jar
file:/home/qa/starworms/dist/starworms.jar!/levels/br.txt
outra tentativa
String path = ("/levels/"+TxtArq.getText());
URL realPath = getClass().getResource(path);
System.out.println(realPath);
FileReader leitor = new FileReader((realPath).getFile());
Saida no terminal
qa@diogo:~/starworms/dist$ java -jar starworms.jar
jar:file:/home/qa/starworms/dist/starworms.jar!/levels/br.txt
