Javac, como usar para procurar arquivo.java?

2 respostas
ribclauport

Pessoal, depois de pesquisar e não achar resposta resolvi pedir a ajuda para entender o seguinte fato:

Tenho um arquivo chamado A.java que está no seguinte diretório:

C:\Projetos\foo\test\xcom

codigo fonte da classe A.java:

public class A { public static void main(String[] args){ System.out.println("oi mundo"); } }

Vamos supor que eu esteja em C:\Projetos, e queira compilar o arquivo com javac, isso realmente é simples, so passar o caminho relativo ou absoluto, segue abaixo o resultado do "óbvio" para eteturar tal tarefa:

comando e resultado com javac e java:

C:\Projetos>javac C:\Projetos\foo\test\xcom\A.java

C:\Projetos>java -classpath C:\Projetos\foo\test\xcom\ A
oi mundo

Bom, sem problemas, porém a dúvida é quanto ao comando javac com o uso do classpath, segue abaixo o comando e o erro:

C:\Projetos>javac -classpath C:\Projetos\foo\test\xcom\ A.java javac: file not found: A.java Usage: javac <options> <source files> use -help for a list of possible options

ja tentei compilar de todas as formas com -classpath para buscar o “arquivo.jar” e não funciona. Então no final das contas com o cenário descrito a pergunta principal é:

Não dá para compilar um arquivo.java usando -classpath para busca da localização do mesmo?

Obrigado.

2 Respostas

HenriqueBR

Cara vc ta no diretorio projetos, tem que indicar o caminho para o arquivo novamente.

C:\Projetos>javac -classpath C:\Projetos\foo\test\xcom\ C:\Projetos\foo\test\xcom\A.java
ribclauport

Se eu indicar o caminho novamente não preciso do classpath, é justamente esta a pergunta, se eu posso passar uma entrada classpath, e a partir dae o compilador localizar o arquivo, se for feito do jeito que você postou, vai compilar por causa do caminho absoluto, e não por causa do classpath.

veja:

C:\Projetos>javac -classpath C:\Projetos\foo\test\xcom\ C:\Projetos\foo\test\xcom\A.java

Está compilando por causa do caminho e o classpath neste caso é inutil veja que abaixo, vai compilar normalmente, ora se eu passo o caminho absoluto vai compilar mesmo:

C:\Projetos>javac C:\Projetos\foo\test\xcom\A.java

A dúvida é justamente esta.

Criado 28 de março de 2012
Ultima resposta 28 de mar. de 2012
Respostas 2
Participantes 2