Re:ler arquivo dentro do diretorio da aplicação

na aplicação desktop vc pode usar:

getClass().getResource("/icones/refresh_nav.gif");
// ou
getClass().getResourceAsStream("/icones/refresh_nav.gif");

Tem vários posts sobre o assunto neste fórum também, vale apena dar uma olhada.

Té+ :slight_smile:

Posta o seu código aew pra gente ver.

Aqui funciona na boa.

mport java.io.File;
import java.io.IOException;
import java.net.URL;

public class Teste {

public URL getFile() {
    System.out.println(getClass().getResource("/arquivos/mensagem.html").toString());
    return getClass().getResource("/arquivos/mensagem.html");


}

public static void main(String[] args) {

    Teste t = new Teste();

    System.out.println(t.getFile());

}
} 

Não tenho idéia do que pode estar acontecendo aí.

Há possibilidades, mas não posso afirmar com certeza. Aqui estou usando o XP Professional.

Eu usei o netbeans. Será que vc exportou o jar corretamente?

Eu estou com esse mesmo problema. E ele roda dentro do eclipse normalmente, porque o eclipse roda a aplicação fora do .jar, ou seja, chama a classe Main…
Já pesquisei sobre as propriedades do sistema via java, como a user.home, user.dir, mas essas não me servem.

Eu tenho um instalador (gerado pelo IzPack), onde a partir dele eu quero informar as propriedades de conexão do banco (o usuário diria onde está o banco, o usuário e a senha). Daí eu gravaria essas informações dentro de um diretório (que eu vou chamar de $INSTALL_PATH), de modo que eu tenha dentro dele tanto um .ini (ou .properties) e o .jar

A classe Main está dentro do .jar, então fazer um simples

new File("").getAbsolutePath();

Não resolve o meu problema. Isso tem como referência o mesmo diretório onde a classe Main se encontra… E como ela tá dentro do .jar, rodando de fora do eclipse a coisa fica feia…

Fiz o seguinte teste:

import java.util.*;

public class Main {
	public static void main (String[] args) {
		String path = ClassLoader.getSystemResource("").getPath();
		System.out.println("usando ClassLoader.getSystemResource(\"\"): " + path);
		path = System.getProperty("user.dir");
		System.out.println("Usando propriedade user.dir: " + path);
	}
}

Compilei essa classe e rodei de fora de um .jar. O getSystemResource() pareceu satisfatório, mas não sei como isso funcionaria de dentro de um arquivo .jar

Boa tarde,

vamos dizer que você tem uma pasta chamada log na raiz da sua aplicação e dentro dessa pasta tenha um arquivo chamado log.txt. Então para acessar esse arquivo você usa o comando a seguir:

File arquivoLog = new File("log/log.txt");

Vale lembrar o seguinte, que essa chamada procura da raiz da aplicação para frente, caso você coloque o comando:

File arquivoLog = new File("/log/log.txt");

A coisa é muito difirente porque ele começa a procurar da raiz da máquina para frente.

Cuidado com a barra (/) então, outra coisa importante é que a barra a utilizar é a “/” e não “” usada no windows, com isso vocÊ ganha portabilidade e garante que seu programa funcionará corretamente em todas as plataformas.

Até mais.

Gente…

Eu testei isso… Num .class executado dentro de uma pasta funciona normalmente, mas o que a gente quer dizer com “raiz da aplicação”, é a pasta onde a aplicação empacotada (.jar) foi instalada… Aí as coisas são um pouco diferentes :slight_smile:

Testei desse jeito e não rolou.

Aí… .pesquisando mais um pouco, eu acabei achando esse post:
http://javafree.uol.com.br/viewtopic.jbb?t=868510

acho que é mais ou menos o que a gente tá precisando…

Como eu faço para ler arquivos que estao dentro do proprio diretorio da minha aplicação ?

Se eu gerer o jar quero que ele faça a leitura desses arquivos dentro do proprio diretorio da minha aplicação …A coisa ta feia !!!

Agradeço a quem ajudar

E faço mas quando vo imprimir o path pra ver se localizou mesmo o arquivo apaerce como null .

          
                          Minha aplicação esta dessa forma 

                          Mensagem
                                            src 
                                                     PACOTE 1 
                                                     PACOTE 2
                                                     PACOTE 3
                                            arquivos
                                                     mensagem.html 
 
Eu to querendo pegar essa mensagem.html dentro de arquivo mas nao ta dando certo . 

Será que é pq eu estou usando o windows vista ?

O que eu to achando estranho é que a minha aplicação ta rodando direito dentro do eclipse . Tipo eu pego esse arquivo html que esta dentro da minha
aplicação e abro ele dentro de uma Jframe , até esse ponto tudo legal .

Mas quando eu gero o arquivo .jar dessa minha aplicação ela não localiza o arquivo html dentro da aplicação !!!

:?: :frowning:

Usei o fatJar pra gerar o arquivo …e fez tudo direitnho mas so na hora de o arquivo .jar ler o arquivo ele diz que nao encontra dentro da aplicação :cry: