Como pegar o caminho fisico do meu jar? (RESOLVIDO)

Olá pessoal, estou com um problema, será que alguém pode me ajudar?
preciso identificar o caminho físico do meu jar do projeto que é desktop, já fiz com algumas maneiras, porém sempre tem falhas e gera sempre bug.
1- ja tentei criar um objeto do tipo arquivo e com o getAbsolutePath() retornar o caminho, até ai blz no Linux roda show, so q no windows nao existe isso e nao funciona.
2- já tentei utilizando o padrão getsystempath blz, no meu Linux roda blz so que não existe essa também no windows…
3- já tentei utilizando o getclasspath blz, no windows roda mais ele pega todo o caminho da classe dentro da bim e no Linux ele pega o caminho o java o que não funciona…
4- já tentei utilizando o System.getProperty(“java.class.path”); só que ele pega todo o caminho da bin e junta com as libs existentes o que deixa a string gigante. Ai em cada maquina para rodar tem q fazer gambiarra.
5- Já tentei utilizando o getClassAbsolutPath() roda, mais só roda no windows e com o eclipse

Então eu tenho uma classe q pega o caminho do jar utilizando o método (4) onde ele pega /home/Usuario/Desenvolvimento/workspace/java/jse/projeto/bin:/home/Usuario/Desenvolvimento/workspace/java/jse/projeto/lib/postgresql-8.4-703.jdbc4.jar ai para pegar somente o que eu preciso tenho utilizar o replace o que implica a ter q abrir o fonte em cada máquina para saber o caminho e alterar o replace.
Existe alguma função que pegar o caminho fisico assim: /home/Usuario/Desenvolvimento/workspace/java/jse/projeto/proj.jar

Desde já, agradeço

Porque você não cria uns instalador para seu programa e adiciona uma variável de ambiente no S.O corrente guardando o local onde o usuário resolveu instalar o programa, assim basta buscar usar “%nomedavariavel%” para acessar o caminho.

Existem duas maneiras

[code]public static void main(String[] args) throws IOException
{
//================================================
//Primeira Maneira
//================================================
File file = new File(".");
System.out.println(file.getCanonicalPath());

//================================================
//Segunda Maneira
//================================================
	
	
String path = System.getProperty("user.dir");

System.out.println(path);

}[/code]

Olá caros colegas brunobuild obrigado

Mas já tentei usando esse método getCanonicalPath()); funciona porém somente no Linux e mac, no windows não retorna nada.
Então pessoal, achei que no open java tivesse uma função pronta… como não encontrei, coloquei a mão na massa e criei um método próprio que pega o path do dominio da class e retorna um codsourse.location e aparentemente está funcionando, só tratar a posição das “/” pois no windows é diferente o path.
RESOLVIDO