[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Compilação do EP1



Olá pessoal,


Alguns alunos reclamaram que não conseguiram compilar o exemplo dado pelo
professor. Ainda, alguns daqueles que compilaram ao executar java Main não
conseguiram rodar o programa.

Após um longo e tenebroso tempo, consegui compilar os arquivos, cuja
localização segue ([raiz] = C:\Thiago Rodrigo\java):
> [raiz]\Main.java
> [raiz]\br\usp\ime\mac212\adventure\Place.java
> [raiz]\br\usp\ime\mac212\util\Console.java

A compilação foi feita primeiramente usando os comandos:
> javac Main
> javac Place
> javac Console
sempre no diretório da classe corrente!

Na hora de executar o programa, utilizei o comando:
> java Main
no diretório [raiz].
Apareceu a seguinte mensagem de erro:
------------------------------------------------------------------------
Exception in thread "main" java.lang.NoClassDefFoundError: Main (wrong name:
br/
usp/ime/mac212/adventure/Main)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
------------------------------------------------------------------------

Tentei a alternativa sugerida pelo Démerson, retirando as declarações
package e import -- relacionadas a br.usp.ime.mac212.adventure ou
br.usp.ime.mac212.util) de cada um dos arquivos (Main, Place e Console).
Compilei novamente os referidos arquivos, sem maiores problemas após essas
mudanças.
Ao executar o programa Main utilizando o comando
> Java Main
apareceu a mesma mensagem de erro de execução acima.

Uma alternativa que eu utilizei antes e após as modificações sugeridas pelo
Démerson foi colocar todos os arquivos no diretório [raiz], mas também deu
erro na execução (mas compilou corretamente).
Outra alternativa que eu tentei antes e após as modificações comentadas pelo
monitor foi colocar os arquivos Main.class e Place.class no diretório:
[raiz]\br\usp\ime\mac212\adventure\
e o arquivo Console no diretório
[raiz]\br\usp\ime\mac212\util\
Em ambas as alternativas, apareceu novamente a mesma mensagem de erro!

Acredito que se esgotaram as possibilidades mais óbvias e eu não imagino
mais o que fazer!

Alguém tem alguma idéia do que fazer?

Abraços,


---------------------------------------------------
Thiago Rodrigo :-)
---------------------------------------------------
Matemática/Estatística - IME-USP
Criação e desenvolvimento web - USP
E-mail: thiagorodrigo@ime.usp.br
Site: http://www.ime.usp.br/~trodrigo
ICQ: 28330228
---------------------------------------------------