Diretório da Classe

5 respostas
Frantic_Avenger

Olá a todos

Estou fazendo um programa que leria um arquivo .txt e o manipularia, porém eu queria construir um .jar para este código. Alguém conhece algum método que retorne um String do dir da classe? Como o arquivo ficaria no mesmo diretório e sempre inserido com o mesmo nome, seria o jeito de eu não colocar nenhum input no meu programa e outra pergunta esse .jar funcionaria? Pois fiz uma interface gráfica e funcionou só clicando.
Resumindo:
1 - Alguém conhece um método que retorne a String de uma classe ou .jar?
2 - Um . jar funciona (sem usar o prompt) sem haver uma interface gráfica?

Flw.

5 Respostas

marcelo.bellissimo

Tenta isso, substitui o SuaClasseAqui pela sua classe, óbviamente…

String path = SuaClasseAqui.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); System.out.println(path);

Quanto á segunda pergunta, não entendi direito…

evertonsilvagomesjav

Seria isso?

System.out.println(System.getProperty("user.dir"));
ViniGodoy

marcelo.bellissimo:
Tenta isso, substitui o SuaClasseAqui pela sua classe, óbviamente…

String path = SuaClasseAqui.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

Esse código depende muito do SecurityManager. Muitos servidores não o executarão, nem applets.

Infelizmente, achar o caminho da própria classe ou .jar de uma maneira segura e garantida é uma tarefa praticamente impossível em java.

Frantic_Avenger

Olá
Mto obrigado pelas respostas, já irei testar os códigos.
Com relação a 2ª pergunta marcelo.bellissimo é mais ou menos o seguinte, quanto fazemos uma interface gráfica e criamos um .jar não usamos o prompt de comando para que seja executada eu dou dois cliques no ícone e pronto ela aparece, eu construindo este código que não possui uma interface gráfica gostaria que ele lê-se o arquivo e o manipulasse porém não sei se um .jar sem interface funciona com duplo clique sem usar o prompt, essa é minha dúvida, .jar funciona com duplo clique sem que haja uma interface no código?
Obs.: Sei que o programa não irá aparecer na tela só gostaria de saber se esse .jar maipularia o arquivo.
Novamente agradeço.

Frantic_Avenger

ViniGodoy:
marcelo.bellissimo:
Tenta isso, substitui o SuaClasseAqui pela sua classe, óbviamente…

String path = SuaClasseAqui.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

Esse código depende muito do SecurityManager. Muitos servidores não o executarão, nem applets.

Infelizmente, achar o caminho da própria classe ou .jar de uma maneira segura e garantida é uma tarefa praticamente impossível em java.

Vlw Vini vou então tentar melhorar meu código e colocar um TextField ou outra coisa para pegar o diretório do arquivo.txt é a única solução que vejo.

Criado 27 de agosto de 2010
Ultima resposta 27 de ago. de 2010
Respostas 5
Participantes 4