O que ha de errado?

Compilei meu primeiro programa em Java, mas na hora de executar aparece isso :


Exeception in thread "main" java.lang.NoClassDefFoundError : Jabberwock
Caused by: java.lang.ClassNotFoundException : Jabberwock
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class : Jabebrwock. Program will exit.

Posta seu codigo ai, pra gent analisar

Ta ai o codigo do programa :



class Jabberwock {
String color;
String sex;
boolean hungry;

void feedJabberwock() {
    if (hungry == true) {
        System.out.println("Yum - a peasant."); 
        hungry = false;
    } else
        System.out.println("No, thanks - already ate.");
 
 }

void showAttributes() {
  System.out.println("This is a " + sex + "   " + color + "jabberwock.");
  if (hungry == true)
      System.out.println("The jabberwock is hungry.");
  else 
      System.out.println("The jabberwock is full.");
  }
 
public static void main(String arguments[]) {
     Jabberwock j = new Jabberwock();
 j.color = "orange";
   j.sex = "male";
   j.hungry = true;
   System.out.println("Calling showAttributes ...");
   j.showAttributes();
   System.out.println("RsRsRs");
   System.out.println("Feeding the jabberwock ...");
   j.feedJabberwock();
   System.out.println("RsRsRs");
   System.out.println("Calling showAttributes ...");
   j.showAttributes();
   System.out.println("RsRsRs");
   System.out.println("Feeding the jabberwock ...");
   j.feedJabberwock();
  }

voce q inventou esse codigo?..

tenta colocar o main em outra classe

O que sera estar acontecendo ?

Não mano, foi eu não, esse codigo e de um livro que uso pra aprender Java, mas como eu vou colocar em outra classe ? se não conseguir, vo ter que desistir do Java, muito complicado… apesar de ser uma otima linguagem, mas . .

nao, nao cara no começo é assim msm…

viu qr um conselho, uma boa apostila para aprender java
apostila do FJ-11 da caelum…

cara mto boa essa apostila pra qm ta começando

Mas eu tenho o Eclipse, ate nele quando eu vou dar um debugger, aparece o seguinte erro :

Build failed

Reason :
Unable to find an Ant file to run.

Fazem ideia do que e isso ?

Regis, agaradeço mesmo, mas meu problema é quanto a estes erros de execução. O que eu faço pra soluciona-los ?

[quote=PedrinhoMaster]Mas eu tenho o Eclipse, ate nele quando eu vou dar um debugger, aparece o seguinte erro :

Build failed

Reason :
Unable to find an Ant file to run.

Fazem ideia do que e isso ?[/quote]

Joga essa frase no google. Certeza que você não é o primeiro nem o último.

quando vc cria seu projeto java você deve ter uma classe main, na qual já se encontra o método main, ou principal, neste método você deverá colocar tudo oque você colocou no método que escreveu ou copiou do seu livro. Ou tem de setar a classe que você está utilizando como classe principal do projeto, entende?

Outra coisa que eu estava lembrando é que sua classe não possui um construtor não podendo assim ser instanciada, você deverá escrever um para que possa instanciar de outra classe.

Acredito que fazendo umas destas duas coisas seu problema estará solucionado, lembrando que se você for reescrever o método main na classe principal, o método que está na classe que você escreveu terá de ser apagado, ou não funcionará.

bote “class Jabberwock {” na linha 1 como public. E renomeia o nome do .java no eclipse, ou automaticamente quando você colocar o public ele vai gerar um aviso, é so clicar e mandar renomear, com isso assumindo o nome do arquivo .java no eclipse, Jabberwock.java

public class Jabberwock { ...

Bom pessoal, agradeço imensamente a ajuda, mas não compreendi tudo de nada (nada ;D), sou iniciante mesmo, se por acaso não der certo, vou ter de deixar este forum e continuar com Visual Basic mesmo :frowning:

Por incrivel que pareça, o programa acima funcionou, mas pelo JCreator, agora o que naum entendo q é o programa abaixo que não funcionou, mas só pra facilitar, esses ambientes integrados de Java detectam automaticamente as configurações de variaveis e os pepinos todos, tem como configurar, ou são independentes um do outro ?

Vamos ao programa :


public class Factorial {
  public static void main(String arguments[]) {
   int input = Integer.parseInt(args[0]);
   double result = factorial(input);
   System.out.println(result);
}

public static double factorial(int x) {
  if (x < 0)
   return 0.0;
  double fact = 1.0;
  while(x > 7) {
   fact = fact * x;
   x =x -1;
  }
return fact;
 }
}

esse exemplo é de outro livro, que ja esta descansando no armario enquanto naum soluciono os problemas de execução, e quem sabe ele não saia mais delá :frowning:

A mensagem de erro é a seguinte :


Exception in thread "main"java.lang.NoClassDefFoundError: Factorial
Caused by: java.lang.ClassNotFoundException: Factorial
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: Factorial.  Program will exit.

O que sera desta vez ?

O que não entendo é que ja configurei os trecos de Java_Home, Path e Classpath e tals, mas por que da esses erros lunaticos aii ? Talvez seja na hora de declarar as tais de classes e instancias, isso tudo ja quase compreendo, mas o que mata são o jeito como tem que fazer, se alguém puder ajudar, antes que eu desista da poderosa e maravilhosa Java (que pelo jeito não gostou de mim) agradeço…

public static void main(String arguments[]) {
   int input = Integer.parseInt(args[0]);

Voce recebe arguments e tenta parsear o args.

Cara… começe pela apostila FJ-11 que já te indicaram. Eu aprendi por lá e é excelente.

Tenta assim pro sue programa funcionar.

public static void main(String arguments[]) {
   int input = 15;

E o resto deixa igual antes.

Oi,

Isso é problema no classpath.

Você está utilizando Windows ou Linux ?

Tchauzin!

Windows Xp SP3, mas não sei ao acerto, ja configurei as variaveis de ambiente, quase com certeza, o problema deve estar por que tenho duas JVM’s no pc, pq eu comprei ele novo, dai veiu um tal de Hot Spot VM, eu queria saber como remove-lo, dai talvez eu pare de encher todos.

Oi,

HumMmMmM! já tentou executar o eclipse com o comando.: eclipse -clean ?

Já tentou executar o Clean All Projects de dentro do Eclipse ?

Verificou a configuração do build path do projeto onde está a sua classe ?

Verifique também, qual JVM o JCreator está usando e “veja” (Acho que não existe essa palavra) se é a mesma utilizada pelo Eclipse.

Tchauzin!