Referência a arquivo

Pessoal, tenho um sisteminha que carrega umas informações que estão em arquivos. Configurações de servidor e tal…

Quando o programa é executado pela primeira vez em uma máquina, o usuário mesmo é quem cadastra as informações do servidor, estas informações são armazenadas em um arquivo.

Quando executo meu sistema pelo meu IDE, blza, tudo normal, ele carrega o arquivo e tal, mas quando construo o jar do meu sistema ele não carrega. Gostaria de saber como devo fazer essa referencia ao PATH do arquivo. Tou usando Netbeans, o jar é construido na pasta dist do meu projeto, chamado Beer.

No meu codigo fiz a seguinte referência:

private static String pathServerFile = "..\Beer\files\servers.beer"; private static String pathLocalhostFile = "..\Beer\files\localhost.beer";

O que vocês sugerem fazer?

Não sei se entendi seu problema…

Seria o caso de usar System.getSeparator(“file.separator”)?

Olá!

Normalmente quando se usa IDE alguns problemas desse tipo acontecem na hora de distribuir… tente assim

getClass().getResource("arquivo.txt");

o getResource() indica o caminho em que está localizado o .class que foi chamado o método… se o arquivo estiver em pasta acima, use “…\pasta\arquivo.txt”, se estiver abaixo, “pasta\arquivo.txt”

Abraços

Ah e ao invés de escrever direto no código essas Strings que indicam o caminho, tente obter de um arquivo ou banco de dados, pois se um dia esses caminhos forem alterados você vai ter que recompilar todinho o código.

Beleza cara, irei usar esse getResource(). Quanto ao que você falou no 2º post, acho que não dá pra fazer. Porque esses arquivos que eu tou falando são justamente pra o usuário poder carregar as informações do servidor do banco de dados, entendeu?

Tipo, na seguinte tela, a primeira vez que o usuário usa o sistema no seu pc, ele tem que carregar em um arquivo as informações do ip o qual está a base de dados do sistema e/ou carregar as informações do localhost.

Quando executado pela primeira vez no computador, o sistema procura pelo arquivo, como ele não existe, ele cria (sem dados nenhum, eh claro). Portanto, o usuário tem que ir nessa tela, para cadastrar as informações do servidor no referido arquivo de configuração.

Quando eu crio meu JAR é que está o problema, pra onde referenciar este arquivo?

=D

Pois bem, irei agora fazer o que o amigo falou, se tiverem mais alguma sugestão, aceito =)

Abraços

então cara, o arquivo tem que estar dentro do jar, na mesma pasta do .class

Eu sei, mas se eu colocar o arquivo no .jar, caso um dia eu mudar o caminho, terei que recompilar o código não é mesmo, para criar o jar novamente, não é mesmo?

Outra coisa, o getClass só serve em classes métodos não estáticos. Existe alguma outra forma de se fazer isso que você disse em métodos estáticos?

Posso até programando de forma errada, mas tenho tentado implementar o padrão MVC, com o FACADE e na camada de dados o DAO. Dessa forma no facade chamo estaticamente o metodo da camada de negocio, e nessa camada eu chamo o metodo da camada DAO. Tudo estaticamente, sem ter que instanciar nenhuma classe… daí se eu for usar o getClass, terei que modificar isso…

E aê cara? Alguma sugestão?

[]'s