Tenho o projeto coffeeV1 e dentro do projeto eu tenho a seguinte hierarquia de pastas (pacote):
pasta src: (fontes .Java) com/example/web e
com/example/model
pasta classes: (classes Java) com/example/web
com/example/model e
Tenho a classe A que está na pasta src pacote com.example.web
e que importa a classe B do pacote com.example.model, porém ao compilar o javac dá o seguinte erro:
src\com\example\web\A.java:8: package com.example.model does not exist.
Será que o javac ñ tá enxergando o outo pacote com/example/model .
:?: :?:
ivo_costa
Vc tem que usar o atributo “-cp” exemplo:
tenho os arquivos:
c:\a\b\A.java
c:\a\c\B.java
Classe A:
packagea.b;importa.c.B;publicclassA{privateBb;}
Classe B
packagea.c;importa.b.A;publicclassB{privateAa;}
e para compilar eu fiz:
começando pelo diretório “c:”
cd a\b
javac -cp c:\ *.java
P
Pitagoras
Como funciona esse -cp??
:?:
ivo_costa
o -cp significa “classpath”, e nele vc tem que dizer todos os diretórios com código e jars que o seu programa vai usar.
“-cp <path> Specify where to find user class files”
P
Pitagoras
E como faço p/ usar o -cp indicando um .jar e um pacote??
Tenho que separar por “.” (ponto), “;” (ponto e virgula)??
Vlw!!
Alexwell
Como é uma hierarquia é bom as classes estarem na mesma pasta,
ou como o Ivo Costa disse, faça um package.
referente ao javac não compila.
faça o seguinte:
$sudo update-alternatives --config java
set para usar o pacote da sun
depois,
Use o cd para entrar na pasta do projeto
ex:
$ cd /home/alexwell/workspace
depois de um ls para listar os arquivos
e digite
javac arquivo.java
depois é só usar o
java arquivo
Espero ter ajudado,
Abraço!
P
Pitagoras
Só que o problema é:
Se eu compilar a classe com.example.web.A.java apartir do diretório src compila normalmente, porém, se eu compilar a classe a partir do diretório anterior, ou seja, do diretório coffeeV1 que é o diretório do projeto dá o erro dizendo que o pacote com.example.model does not exist.
Já tentei usar o -cp assim: javac -cp com/example/model/B.java …, e assim javac -cp src.com/example/model/B.java …, porém o erro persiste!!
Onde estou errando??
:?: :?: :?:
W
Walhallan
Não crie pasta e subpastas para packages, o javac fará isso automaticamente.
Coloque todos os seus .java direto sob src. No comando javac, a opção -d seguida de um caminho significa onde você quer que os .class, já dentro de seus respectivos pacotes, fiquem.
Exemplo:
prompt no diretório coffeeV1>javac ./src/A.java ./src/B.java -d ./classes
Sds,
B
budega
nao estou consiguindo compilar
quando uso o javac esta dando o seguinte erro
‘javac’ não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes
como faço para funcionar ?
onde estou errando ?
W
Walhallan
Primeiro certifique se tem o pacote jdk na máquina, uma pasta jdk… ou jsdk… no drive C: ou D:.
Edite/crie as variáveis de ambiente necessárias (no XP, Iniciar -> Painel de Controle -> Sistema -> Avançado -> Variáveis de Ambiente). Exemplo:
JAVA_HOME = C:\Program Files\Java\jdk1.6.0_03
Após, no Command Prompt, dê o comando java -version e depois o comando javac -version. A versão do JRE (java -version) não deve ser jamais inferior à versão do compilador (javac -version).