Como obter diretorório (path) do projeto no eclipse

Olá pessoal,
estou com um probleminha aqui… eu preciso saber o caminho do meu projeto para criar um arquivo dentro dele. Por exemplo:
O meu projeto está em: C:\eclipse\workspace\MeuProjeto
e eu preciso criar um arquivo dentro do projeto, como: MeuProjeto/temp/teste.txt

gostaria de saber se tem alguma propriedade ou algo similar para obter diretório HOME do projeto ou do workspace para criar o arquivo apartir dele, tipo:

File file = new File("${project_home}/teste.txt");

deu pra entender? :slight_smile:

Vc não precisa referenciar a pasta do seu projeto, pois se vc não especificar o caminho absoluto do seu arquivo, o seu programa já vai procurar o arquivo especificado na pasta do seu projeto. Por exemplo, se vc fizer assim:

File file = new File("teste.txt");O programa vai procurar o arquivo na raiz do seu projeto. No seu caso, acho que assim resolve:

File file = new File("temp/teste.txt");

Blz? Flw! :thumbup:

Eu entendi sem dar :slight_smile:

System.getProperty(“user.dir”) irá retornar o diretório atual da aplicação java. No caso do Eclipse, isto é configurável, mas o default é o diretório do projeto no workspace.

1 curtida

realmente, isso funciona normalmente para um projeto Java comum… porém estou utilizando uma outra versão do eclipse e não sei se ele tem outro comportamento, estou utilizando o IBM Functional Tester (para fazer teste automatizado) não sei se vocês já trabalharam com ele,…, mas enfim, fiz o seguinte teste no Functional Tester:

criei um projeto Java normal (Java Project) e um de Functional Tester (Functional Test Project) - FT;
O workspace ficou assim:
JavaProject = C:\IBM\Rational\workspace\TesteJava
Functional Test Project = C:\IBM\Rational\workspace\TesteFunctional

porém, quando eu crio o arquivo, ele está mudando o diretório do arquivo no projeto Functional:
JavaProject = C:\IBM\Rational\workspace\TesteJava\temp\teste.txt -> Ok, o arquivo foi criado certo.
Functional Test = C:\IBM\Rational\SDP\6.0\temp\teste.txt -> Não encontra o arquivo, não está no workspace

no projeto Functional Test, ao invés de criar o arquivo em dentro da pasta do workspace, está criando na pasta de instalação do programa.

Sei que está ficando meio confuso, mas seria muito útil pra mim, se fosse possível obter o path do projeto direto, parecido como é feito no Ant usando variáveis de propriedade.

agradeço pela ajuda.

A classe file tem um construtor que recebe duas string, uma pra indica o diretório pai, e outra do arquivo.

Artigo explicativo:
http://www.guj.com.br/java.tutorial.artigo.13.1.guj

Com esse codigo criei o arquivo no meu desktop:

[code]
import java.io.File;
import java.io.IOException;

public class Teste {
public static void main(String[] args) throws IOException {
File dir = new File(“C:\Documents and Settings\Ygor\Desktop”);
File file = new File(dir, “arquivo.txt”);
file.createNewFile();

}

}[/code]

e quando o projeto esta sendo executado no Tomcat como projeto java web?

Exemplo de utilização em projeto web:

String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("") + "/resources/relatorios/";