Nao estou conseguindo pegar o caminho do projeto exemplo quero /src/revistas

oi. por favor pode me ajudar?

nao conseguindo pegar o caminho do projeto exemplo quero /src/revistas. tenho dois projetos, o revistas e o projeto executar. quando vou no projeto executar e executo a classe Main ele pega o caminho absoluto desse projeto, mas quero do projeto revistas, entendem?

posta seu código aqui… assim fica mais fácil.

Abs

ja tentei de tudo

System.out.println(getClass().getResource("src/br/uol/revistas/imagens/ícone_uol_rev.png").getPath());

da nullpointer

URL Diretorio = this.getClass().getResource("/src/br/uol/revistas/imagens"); System.out.println(Diretorio.getPath());

da nullpointer tambeimn

tambem gera exceção

[code]public class Teste {
public static void main(String[] args) throws IOException {

 new Teste(). teste();
  }

void teste() throws IOException{

InputStream stream =
getClass().getResourceAsStream(“C:/Users/mariafs/Desktop/Eclipse Juno/revistas/src/br/revistas/imagens”);

try {

OutputStream out = new FileOutputStream(new File("c:\\teste.png"));

int read = 0;
byte[] bytes = new byte[1024];

while ((read = stream.read(bytes)) != -1) {
	out.write(bytes, 0, read);
}

stream.close();
out.flush();
out.close();

System.out.println("New file created!");
} catch (IOException e) {
System.out.println(e.getMessage());
}

Desktop.getDesktop().open(new File(“c:\teste.png”));

}

}
[/code]

Exception in thread "main" java.lang.NullPointerException

ja tentei de tudo System.out.println(new File(this.getClass().getResource("./src").toURI().getPath())); nada funciona, sera problema no java?

Olá vamos ver se entendi o seu caso.
Está estranho pois no seu código você coloca um caminho que corresponde o local onde está seu código fonte “.java”, porém você utiliza o getClass().getResourceAsStream que sempre irá retorna o diretório onde está armazenado seus arquivos .class.
Dessa forma não vai funcionar.

Caso queira ler as imagens do local onde estão seus arquivos .class, você não coloca o caminho do diretório e sim especifica somente o arquivo que queira ler. Exemplo:

InputStream origem = getClass().getResourceAsStream("JList.png");

Se desejar ler realmente as imagens do local onde estão seus fontes “.java”, me diga ai vou pesquisar aqui como recupera esse caminho. Mas para não deixar você na mão segue uma alternativa não muito correta do ponto de vista de programação, porém “quebrará se galho”.

  String file = "/src/testes";
  System.out.println(System.getProperty("user.dir") + file) ; 

Abraços

this.getClass().getResource("br\\uol\\revistas\\imagens");

?

Ao invés do getResource use o ./.

Ex: ./src/br/uol/revistas/imagens

Tem que funcionar, pois uso desta forma aqui.

[quote=wellington.nogueira][quote=mariazinhahappy] URL Diretorio = this.getClass().getResource("/src/br/uol/revistas/imagens"); System.out.println(Diretorio.getPath());

da nullpointer tambeimn[/quote]O que retorna quando você chama esse mesmo comando passando uma String vazia?

URL Diretorio = this.getClass().getResource(""); System.out.println(Diretorio.getPath());
Aliás, se não me engano, não pode usar o / no início da string (se eu estiver certo, o Java entenderia como C:\src…)

Normalmente não é boa prática apontar para a pasta src dentro do código pois, ao gerar o compilado, essa pasta costuma NÃO acompanhar o sistema.[/quote]

quando uso URL Diretorio = this.getClass().getResource(""); System.out.println(Diretorio.getPath()) ai mostra o caminho ate o bin, mais nao da para abrir porque tem um monte de % no meio

[quote=andredecotia]Ao invés do getResource use o ./.

Ex: ./src/br/uol/revistas/imagens

Tem que funcionar, pois uso desta forma aqui.[/quote]

assim funcionou mesmo. obrigada.

so que agora fiquei com duvida de fazer da outra maneira funcionar… fiquei 1 semana e 2 dias so tentando funcionar e nao consegui

na verdade nao sei o acontece na verdade nenhuma das formas acima consegui funcionar de verdade alguem ainda pode me ajudar? ??

porque aparece um monte dee %%%???

use o File.separator, do Java, pois se seu sistema for para um linux ou vice-versa voce tera problemas de caminho.

[quote=steveVai]Olá vamos ver se entendi o seu caso.
Está estranho pois no seu código você coloca um caminho que corresponde o local onde está seu código fonte “.java”, porém você utiliza o getClass().getResourceAsStream que sempre irá retorna o diretório onde está armazenado seus arquivos .class.
Dessa forma não vai funcionar.

Caso queira ler as imagens do local onde estão seus arquivos .class, você não coloca o caminho do diretório e sim especifica somente o arquivo que queira ler. Exemplo:

InputStream origem = getClass().getResourceAsStream("JList.png");

Se desejar ler realmente as imagens do local onde estão seus fontes “.java”, me diga ai vou pesquisar aqui como recupera esse caminho. Mas para não deixar você na mão segue uma alternativa não muito correta do ponto de vista de programação, porém “quebrará se galho”.

  String file = "/src/testes";
  System.out.println(System.getProperty("user.dir") + file) ; 

Abraços[/quote]

steve voce e muito inteligente testei o que voce disse e funcionou nossa eu nao tinha lido direito desculpa … voce tgambem disse qeu essa nao era a melhor forma… porquenao é?

alguem ?

Vamos por partes…

Esse getClass vai pegar a classe onde você está chamando o teu código. Duas perguntas:

getClass().toString() imprime o que?
Qual o nome da tua classe e o package onde ela se encontra?

[quote=Bruno Laturner]Vamos por partes…

Esse getClass vai pegar a classe onde você está chamando o teu código. Duas perguntas:

getClass().toString() imprime o que?
Qual o nome da tua classe e o package onde ela se encontra?
[/quote]

o problema e muito estranho, faço no eclipse aqui em casa e funciona mas no eclipse do serviço so da nullpointer o mesmo metodo pois nao acha o caminho, do projeto A quero acessar a imagem que esta no projeto B mas nao acha porem se coloco a imagem no projeto A tambem dai funciona

[quote=Bruno Laturner]Vamos por partes…

Esse getClass vai pegar a classe onde você está chamando o teu código.[/quote]
como assim

??

o nome da classe que estou chamando executando

Um projeto de exemplo para você entender como funciona essa pesquisa de recursos.

Basicamente ele procura pelo recurso dentro do classpath onde o teu programa está rodando, com endereços relativos ou absolutos à classe por onde você está chamando o getResourceStream. Se você chamasse esse método de outra classe em outro pacote, o caminho relativo mudaria.

Note que dentro desse projeto, eu configurei o jar para estar no mesmo classpath da aplicação quando ela roda no Eclipse.