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é+
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é+
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
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 !!!
:?:
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