Pq nao compila?

15 respostas
G
package cap1.cliente;

import cap1.Carros.Moto;

public class Honda extends Moto{

	public static void main(String[] args) {
	}
}
package cap1.Carros;
abstract class Moto {
int z=10;
}

Pq nao compila?

Honda.java:3: package cap1.Carros does not exist
import cap1.Carros.Moto;
^
Honda.java:5: cannot find symbol
symbol: class Moto
public class Honda extends Moto{
^
2 errors

15 Respostas

ricardo13

olá,

Pq estão em pacotes distintos …e a classe Moto está com o modo de acesso padrão, isso quer dizer q somente as classes dentro do pacote dela q a enxergam !!!

Se vc colocar public na classe Moto vai dar certo !!!

Ricardo

G

Nao funcionou...

package cap1.Carros;

public abstract class Moto {

	int z=10;

}

Honda.java:3: package cap1.Carros does not exist
import cap1.Carros.Moto;
^
Honda.java:5: cannot find symbol
symbol: class Moto
public class Honda extends Moto{
^
2 errors

ricardo13

Existe essa pasta “Carros” ao qual a classe Moto está inserida ??

Pq pelo jeito ele naum ta achando essas pastas cap1 e Carro

Ricardo

B

crie outro projeto e copie as classes para ele, deve funcionar.

ricardo13

Vc ta usando alguma IDE ou fazendo na mão (os pacotes) ???

Ricardo

G
  • cap1
    ------ Carros
    ------------ Moto.java

------ cliente
------------- Honda.java

Para compilar entro nos diretórios… nao é isso?

[edit] Fazendo na mão… criei a estrutura no desktop…

Abraços

D

Grande fiz uma simulação e varias formas e funcionaram do jeito que esta ai…
Tenta refazer os pacotes e as classes!!

Valeu

ricardo13

Vai somente na classe que possui o main() …entre no diretório da classe e compile somente ela !! Automaticamente ela irá encontrar as dependências (outras classes !!)

Ricardo

G

C:\Documents and Settings\guilherme\Desktop\cap1\cliente>javac Honda.java

Honda.java:3: package cap1.Carros does not exist

import cap1.Carros.Moto;

^

Honda.java:5: cannot find symbol

symbol: class Moto

public class Honda extends Moto{

^

2 errors
ricardo13

olá

entaum tenta rodar o javac na classe Honda.java no diretório Desktop !!!

/Editando/
Fora do pacote cap1.cliente

Ricardo

G

Mesma coisa… sei lá o q é…

obrigado

diegosantiviago

esses pacotes com primeira letra maiúscula tá bonito, tentou alterar tudo pra minusculo?
e tenta ver questões de classpath também…

ricardo13

Eu fiz o seu exemplo aki !!!

E funcionou somente compilando fora dos pacotes…exemplo:

javac cap1/cliente/Honda.java

é bem estranho …se vc ta interessado em certificação …pega uma IDE e faz esses exemplos…a IDE toma conta de tudo isso pra vc !!!
Embora assim vc vai ter q lidar com outros problemas (como esse !!)

Ricardo

taaqui

Pega um IDE (Eclipse) qualquer do mercado e trabalha encima, se você esta estudando para a certificação isso ocupa muito tempo, esse tempo que você deveria esta assimilando coisas mais abrangentes. se você esta estudando pelo livro da KS, este assunto esta bem explicado no ultimo capitulo do livro, até la você não vai precisar se aprofundar nisso não.

claudneysessa

TIVE O MESMO PROBLEMA VAI AI A MINHA SOLUÇÃO

ESTRUTURA

--projeto
-----pacote1
----------classe1.java
-----pacote2
----------classe2.java

vamos dizer que você tem a classe 1 que depende da classe 2 como abaixo

package pacote2
public class classe2
package pacote1
import pacote2.*;
public class classe1

para compilar via terminal no WINDOWS, você deve estar na raiz do projeto
no caso

cd\

cd c:\[caminho]\projeto
estando na pasta do projeto

c:\projeto>javac -cp . pacote2/classe2.java ( aqui a classe2 que nao possui dependencia é compilada )
c:\projeto>javac -cp . pacote1/classe1.java ( aqui a classe1, primeiro compilamos a classe2 pois a 1 depende dela )

para testar basta digitar

c:\projeto>java -cp . pacote1.classe1

Bom, espero ter ajudado...

Criado 9 de abril de 2009
Ultima resposta 16 de out. de 2009
Respostas 15
Participantes 7