Método q retorne url?

15 respostas
rodrigo.fai

Olá pessoal!

Alguém poderia me informar um método em Java q me retorne o caminho(url) ond está localizado a aplicação?
Por exemplo: minha aplicacao esta em “C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps”, queira um método q me retornase esta string.
Um método semelhante eh o extratfilepath em C++!

Vlw!

15 Respostas

_fs
String path = getClass().getClassLoader().getResource( "" ).getPath();
path = URLDecoder.decode( path);

Se o código residir em um Servlet pode usar a classe ServletContext para conseguir este valor.

rodrigo.fai

Nao entendi dereito este código! Da ond vc tirou o “basePath”?

jtsato

Tenta isso this.getServletConfig().getServletContext().getRealPath("/")

rodrigo.fai

Este código eu nao vou usar em uma servlet!

erickcellani

onde vc vai usar?

rodrigo.fai

Eu tenho uma classe q faz a conexao com a banco d dados. O caminho do meu banco esta informado em uma arquivo .txt da minha aplicacao. Eu queria um codigo q me retornase o path da minha aplicacao p/ eu buscar este arquivo .txt e este codigo eu posso usar na propria classe de conexao!
Fazendo isso minha aplicacao vai ficar mais flexivel!

Sacou? Vlw!

marcelo_mococa

cara… use arquivos properties para guardar configurações.

Se o arquivo estiver dentro do classpath, você consegue recuperá-lo dentro da classe que cria as conexões e assim recuperar a configuração que você deseja.

ramilani12

Esse metodo nao te ajuda:

request.getContextPath();
_fs

Esqueci de trocar o nome da variável, editei o código.

rodrigo.fai

marcelo_mococa:
cara… use arquivos properties para guardar configurações.

Se o arquivo estiver dentro do classpath, você consegue recuperá-lo dentro da classe que cria as conexões e assim recuperar a configuração que você deseja.

ond eu posso me informar mais sobre arquivos properties?

marcelo_mococa

aqui…
http://java.sun.com/docs/books/tutorial/essential/environment/properties.html

rodrigo.fai

Estou usando agora um arquivo .properties(config.properties)!
O código ficou assim:

File file = new File(“config.properties”);
FileInputStream fileInputStream = new FileInputStream(file);

Properties properties = new Properties();
properties.load(fileInputStream);

linhaum = properties.getProperty(“url.zeus”);

linhadois = properties.getProperty(“user”);

linhatres = properties.getProperty(“password”);

fileInputStream.close();

Mas quando tento abrir o arquivo p/ ler as informacaoes a aplicacao nao o encontra!

Existe um lugar específico ond deve ser gravado este tipo de arquivo??

Vlw!

marcelo_mococa

tente assim:

o arquvo deve estar dentro do classpath, por exemplo:

WEB-INF\classes\com\samples\properties\config.properties

pra ler:

PropertyResourceBundle props    =   (PropertyResourceBundle) ResourceBundle.getBundle ("com.samples.properties.config");
 
String value = props.getString ("key");
rodrigo.fai

marcelo_mococa:
tente assim:

o arquvo deve estar dentro do classpath, por exemplo:

WEB-INF\classes\com\samples\properties\config.properties

pra ler:

PropertyResourceBundle props    =   (PropertyResourceBundle) ResourceBundle.getBundle ("com.samples.properties.config");
 
String value = props.getString ("key");

Eu nao entendi a utilizacao desta classe PropertyResourceBundle!
Bom… eu estava utilizando a classe File p/ indicar o arquivo, o FileInputStream q possibilita a leitura e o Properties p/ obter os dados! Nao funciona desta maneira?

Coloquei o arquivo no classpath: WEB-INF\classes\net\sytes\tsda\zeus\properties mas continua dando arquivo nao encontrado!

Metaleiro

[color=darkblue]Bem, não sei se irá ajudar ou atrapalhar, mas eu utilizo isso em Swing, onde importar é um JButton: [/color]

import java.awt.Dimension;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JPanelTeste extends Panel {
	
	public JTextField txtWay = new JTextField(10);;
	JButton importar = new JButton("TESTE");
	
	/**
	 * Método construtor
	 *
	 */
	public JPanelTeste(){
			
	    importar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JFileChooser fc = new JFileChooser(System
                        .getProperty("user.dir"));
                fc.setMultiSelectionEnabled(false);
                javax.swing.filechooser.FileFilter filter = new   javax.swing.filechooser.FileFilter() {
                    public boolean accept(File f) {
                        return f.isDirectory()
                                || f.getName().toLowerCase().endsWith(
                                        ".txt");
                    }

                    public String getDescription() {
                        return "(*.txt)"; 
                     // return "(*.xls)";
                    }
                };
                fc.addChoosableFileFilter(filter);
                int returnVal = fc.showDialog(null,
                        "Open");
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                	txtWay.setText(fc.getSelectedFile().getAbsolutePath());
          

                } else if (returnVal == JFileChooser.CANCEL_OPTION) {
                    return;

                } else if (returnVal == JFileChooser.UNDEFINED_CONDITION) {
                    return;
                }
            }
        });

		JPanel panel = new JPanel();
		txtWay.setEditable(true);
		panel.add(txtWay);
		panel.add(importar);
		JFrame frame = new JFrame();
		frame.getContentPane().add(panel);
		frame.setSize(new Dimension(300, 300));
		frame.setVisible(true);	
		
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		JPanelTeste testePanel = new JPanelTeste();
		testePanel.show();	
		// TODO Auto-generated method stub
	}
}

[color=darkblue]Segue um tutorial: [/color]

[url]http://www.guj.com.br/java.tutorial.artigo.13.1.guj[/url]

[color=darkblue] Você consegue isso também utilizando HTML:[/color]

<input type="file" name="caminho_arquivo" />
Criado 18 de maio de 2007
Ultima resposta 18 de mai. de 2007
Respostas 15
Participantes 7