Erro ao compilar

4 respostas
cu_ringa

tenho a classe JanelaMV( public ), no mesmo arquivo tenho a classe InstrucaoMV( default ) que extende a classe JanelaMV, onde tenho o metodo main, quando compilo e executo no JCreater roda beleza, já quando vou fazer isso no DOS, aparece essa mensagem de erro( 2ª, 3ª linha):

C:CarlosMV_2>javac JanelaMV.java

C:CarlosMV_2>javac Instrucao.java
error: cannot read: Instrucao.java
1 error

C:CarlosMV_2>java Instrucao
Exception in thread "main" java.lang.NoClassDefFoundError: Instrucao

4 Respostas

C

Se vc empacotou suas classes em um JAR vc deve usar o -cp do JVM para colocá-la no CLASSPATH, se vc não fez isso vc (o que não é comum)deve executar a JVM com pelo menos o diretório raiz de suas classes no CLASSPATH.
Se quer um conselho empacote sempre suas classes em um JAR e tenha uma boa estrutura de pacotes definida.

cu_ringa

quando coloco -cp aparece essa mensagem, será q dava pr vc colocar o comando p mi ver se estou fazendo certo.

-showversion  print product version and continue
  -jre-restrict-search | -jre-no-restrict-search
                include/exclude user private JREs in the version search
  -? -help      print this help message
  -X            print help on non-standard options
  -ea[:<packagename>...|:<classname>]
  -enableassertions[:<packagename>...|:<classname>]
                enable assertions
  -da[:<packagename>...|:<classname>]
  -disableassertions[:<packagename>...|:<classname>]
                disable assertions
  -esa | -enablesystemassertions
                enable system assertions
  -dsa | -disablesystemassertions
                disable system assertions
  -agentlib:<libname>[=<options>]
                load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
  -agentpath:<pathname>[=<options>]
                load native agent library by full pathname
  -javaagent:<classname>[=<options>]
                load Java programming language agent, see java.lang.instrument
C

java -cp seupacote.jar nome.completo.da.sua.Classe

ou se não está empacotado e sua classe tem uma definição de pacote assim :
package exemplo.teste;

e sua estrutura de diretórios esta assim :

ootjavaexemplo este
vá em
ootexemplo e use isso
java -cp . exemplo.teste.Teste
ou vá em
ootjavaexemplo este
e use
java -cp …/… exemplo.teste.Teste

C

O post anterior ficou doidão, o correto é :

java -cp seupacote.jar nome.completo.da.sua.Classe

ou se não está empacotado e sua classe tem uma definição de pacote assim :
  package exemplo.teste;

e sua estrutura de diretórios esta assim :
   
ootjavaexemplo	este
 em 
ootjava e use isso
    java -cp . exemplo.teste.Teste  
ou  em 
ootjavaexemplo	este
e use 
    java -cp ../.. exemplo.teste.Teste
Criado 31 de julho de 2004
Ultima resposta 1 de ago. de 2004
Respostas 4
Participantes 2