pegar diretorio da aplicação.
bom dia pessoal, estou a algum tempo ja estudando java, + sempre voltado a web, esses dias decidi estudar 1 pouco de swing pra n ficar batido, criei uma aplicação bem simples mesmo, so para fixar, + me veio a ideia de salvar as configurações em 1 xml na mesma pasta onde estaria o .jar, alguem conhece alguma função q capture esse diretorio?
tentei usar o System.getProperty("user.dir") no eclipse ele cria o arquivo na pasta do projeto, + quando exporto o .jar, so Deus sabe pra onde vai o arquivo criado rsrsrsrs, muito obrigado pela atenção.
Clebio Silva
Curtidas 0
Respostas
Alexandre Viriato
09/04/2009
[quote="ranzou"]bom dia pessoal, estou a algum tempo ja estudando java, + sempre voltado a web, esses dias decidi estudar 1 pouco de swing pra n ficar batido, criei uma aplicação bem simples mesmo, so para fixar, + me veio a ideia de salvar as configurações em 1 xml na mesma pasta onde estaria o .jar, alguem conhece alguma função q capture esse diretorio?
tentei usar o System.getProperty("user.dir") no eclipse ele cria o arquivo na pasta do projeto, + quando exporto o .jar, so Deus sabe pra onde vai o arquivo criado rsrsrsrs, muito obrigado pela atenção.
Bom cara? Vê se isso te ajuda...
package src;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
public class MainTeste {
public static void main(String[] args) {
MainTeste main = new MainTeste();
System.out.println(main.getApplicationPath());
}
/**
* Retorna o caminho onde a aplicação está sendo executada
* @return caminho da aplicação
*/
public String getApplicationPath() {
String url = getClass().getResource(getClass().getSimpleName() + ".class").getPath();
File dir = new File(url).getParentFile();
String path = null;
if (dir.getPath().contains(".jar"))
path = findJarParentPath(dir);
else
path = dir.getPath();
try {
return URLDecoder.decode(path, "UTF-8");
}
catch (UnsupportedEncodingException e) {
return path.replace("%20", " ");
}
}
/**
* retorna o caminho quando a aplicao est dentro de um
* arquivo .jar
* @param jarFile
* @return
*/
private String findJarParentPath(File jarFile) {
while (jarFile.getPath().contains(".jar"))
jarFile = jarFile.getParentFile();
return jarFile.getPath().substring(6);
}
}
GOSTEI 0
Clebio Silva
09/04/2009
[quote="afviriato"][quote="ranzou"]bom dia pessoal, estou a algum tempo ja estudando java, + sempre voltado a web, esses dias decidi estudar 1 pouco de swing pra n ficar batido, criei uma aplicação bem simples mesmo, so para fixar, + me veio a ideia de salvar as configurações em 1 xml na mesma pasta onde estaria o .jar, alguem conhece alguma função q capture esse diretorio?
tentei usar o System.getProperty("user.dir") no eclipse ele cria o arquivo na pasta do projeto, + quando exporto o .jar, so Deus sabe pra onde vai o arquivo criado rsrsrsrs, muito obrigado pela atenção.
Bom cara? Vê se isso te ajuda...
ajudou bastante, ja retorna direitinho o diretorio do .jar + mesmo assim ele n cria o arquivo, tentei modificar para o c:, quando executo pelo eclipse, ele cria o arquivo, + quando exporto o .jar, ele n cria, alguem sabe dizer pq? to usando o jdom pra criar o arquivo
essa e a parte do codigo q cria o arquivo
String xml = xout.outputString(doc); fileWrite = new FileWriter(new File(appl+"/tabelas.xml")); fileWrite.write(xml); fileWrite.close();
GOSTEI 0
Alexandre Viriato
09/04/2009
[quote="ranzou"][quote="afviriato"][quote="ranzou"]bom dia pessoal, estou a algum tempo ja estudando java, + sempre voltado a web, esses dias decidi estudar 1 pouco de swing pra n ficar batido, criei uma aplicação bem simples mesmo, so para fixar, + me veio a ideia de salvar as configurações em 1 xml na mesma pasta onde estaria o .jar, alguem conhece alguma função q capture esse diretorio?
tentei usar o System.getProperty("user.dir") no eclipse ele cria o arquivo na pasta do projeto, + quando exporto o .jar, so Deus sabe pra onde vai o arquivo criado rsrsrsrs, muito obrigado pela atenção.
Bom cara? Vê se isso te ajuda...
ajudou bastante, ja retorna direitinho o diretorio do .jar + mesmo assim ele n cria o arquivo, tentei modificar para o c:, quando executo pelo eclipse, ele cria o arquivo, + quando exporto o .jar, ele n cria, alguem sabe dizer pq? to usando o jdom pra criar o arquivo
essa e a parte do codigo q cria o arquivo
String xml = xout.outputString(doc); fileWrite = new FileWriter(new File(appl+"/tabelas.xml")); fileWrite.write(xml); fileWrite.close();
GOSTEI 0
Clebio Silva
09/04/2009
Bom, dá um print no seu File, pra ver se está retornonando certo.. verifica tb as permissões do diretório, se estiver usando Linux ou algum sistema que controle isso
ja dei o print saiu tudo direitinho, crieu uma area de texto e mandei sair o valor dentro, saiu perfeito, e to usando windows mesmo, muito estranho isso =/ pq quando mando debugar pelo eclipse, faz tudo direitinho, le o arquivo, carrega as informações em 1 bean se o arquivo não existe, cria ele com as informações padrões, e tmb edita q e uma beleza, + quando exporto o .jar da aplicação ele abre direitinho, + n cria o arquivo de geito nenhum.
GOSTEI 0
Carlos Heuberger
09/04/2009
[quote="ranzou"]
não acompanhei direito a discusão, mas usando o getResource dentro de um JAR, voce vai obter um caminho/diretório dentro desse JAR. Lá voce não consegue (de maneira simples) criar um novo arquivo.
Para verificar, poe uns System.out.println com os caminhos:
Bom, dá um print no seu File, pra ver se está retornonando certo.. verifica tb as permissões do diretório, se estiver usando Linux ou algum sistema que controle isso
ja dei o print saiu tudo direitinho, crieu uma area de texto e mandei sair o valor dentro, saiu perfeito, e to usando windows mesmo, muito estranho isso =/ pq quando mando debugar pelo eclipse, faz tudo direitinho, le o arquivo, carrega as informações em 1 bean se o arquivo não existe, cria ele com as informações padrões, e tmb edita q e uma beleza, + quando exporto o .jar da aplicação ele abre direitinho, + n cria o arquivo de geito nenhum. ... File file = new File(appl+"/tabelas.xml"); System.out.println(appl); System.out.println(file.getAbsolutePath()); fileWrite = new FileWriter(file); ...
GOSTEI 0
Wagnerbackes
09/04/2009
[quote="ranzou"]
Bom, tive um problema parecido com o XStream, no Eclipse funcionava de boa e no .jar não funcionava, não criava os arquivos xml.
Depois de testar varias coisas descobri que no momento de exportar tenho que selecionar o Runnable JAR file para que tudo funcione de acordo.
Já que não achei essa resposta em nenhum lugar decide compartilhar pois o problema é bem parecido.
Bom, dá um print no seu File, pra ver se está retornonando certo.. verifica tb as permissões do diretório, se estiver usando Linux ou algum sistema que controle isso
ja dei o print saiu tudo direitinho, crieu uma area de texto e mandei sair o valor dentro, saiu perfeito, e to usando windows mesmo, muito estranho isso =/ pq quando mando debugar pelo eclipse, faz tudo direitinho, le o arquivo, carrega as informações em 1 bean se o arquivo não existe, cria ele com as informações padrões, e tmb edita q e uma beleza, + quando exporto o .jar da aplicação ele abre direitinho, + n cria o arquivo de geito nenhum. GOSTEI 0