Erro de Compilação em pacotes pelo javac

6 respostas
E

Pessoal estou com um problema, mas ainda não consegui resolver o misterio, seguinte:

Tenho duas classes aparentemente tudo prefeitamente em seus devidos lugares, porem quando eu incluo o nome do package eu nao consigo compilar o Main (as duas pertencem ao mesmo paco), se eu tirar a declaração dos pacotes tudo funciona perfeitamente, por que isso acontece ?

package br.com.umcastec;
public class Main {
	public static void main(String args[]) {
		Msg msg = new Msg();
		msg.jarmsg();
	}
}
package br.com.umcastec;

import javax.swing.JOptionPane;

public class Msg {
	public void jarmsg(){
		JOptionPane.showMessageDialog(null, "Gerei um jar pelo prompt");
	}
}

Obs: Não estou usando nenhuma IDE, tudo foi criado na mão, desde o diretorio do mini projeto, compilo via prompt de comando. o objetivo é gerar um JAR pelo prompt de comando estas seriam minhas classes no jar.

Se alguem souber por que com a declaração package não compila e sem ela compila, por favor me de uma dica…

Este código foi tirado de um tutorial na net nao lembro o link

Obrigado…

6 Respostas

rogelgarcia

De onde você está executando o JAVAC e qual o comando completo?

O erro deve estar no comando… ou voce está executando do diretório errado, ou não configurou o classpath corretamente.

E

rogelgarcia:
De onde você está executando o JAVAC e qual o comando completo?

O erro deve estar no comando… ou voce está executando do diretório errado, ou não configurou o classpath corretamente.

Eu ja configurei as 3 variaves JAVA_HOME, CLASSPATH, e PATH.

Acredito que esteja tudo ok, pois como disse eu consigo compilar normalmente e executar normalmente quando remove a clausula package das duas classes, se fosse no comando ou nas variaveis de ambiente, nao compilaria de nenhuma maneira, estou certo ?

executo os comandos dentro da pasta inicial do projeto digito javac br\com\umcastec*.java

só para acresentar o erro que segue é que não encontra a varial Msg dentro do Main sendo que é impossivel pois as classes são publicas e estao dentro do mesmo pacote…

muito estranho isso

rogelgarcia

É… estranho mesmo… coloca aqui a mensagem de erro… as vezes pode dar alguma luz…

E

A mensagem de erro é a seguinte:

Main.Java:4: error: cannot find symbol

Msg msg = new Msg();

^

symbol: class Msg

location: class Main

Main.Java:4: error: cannot find symbol

Msg msg = new Msg();

^

symbol: class Msg

location: class Main

2 errors

Eu fiz um teste pelo Eclipse e quando gero as classes por la funciona normalmente, eu tenho que executar alguma coisa antes para funcionar os pacotes ou algo do tipo?

rogelgarcia

Não … tem nao… eu até peguei o seu código e compilei na linha de comando… funcionou sem problemas… :confused:

rogelgarcia

O nome do seu arquivo é Main.Java ou Main.java??

Tente renomear para .java se for o caso… vai saber né?!

Criado 12 de novembro de 2011
Ultima resposta 12 de nov. de 2011
Respostas 6
Participantes 2