Não acha a classe main

11 respostas
A

Boa tarde pessoal,

Ainda nao entendi o que aconteceu, pois a única coisa que fiz foi dar um Update (CVS) no projeto, e agora não roda mais nada, nem no eclipse e nem direto no prompt.

Por exemplo:
package nl.weev.adminexpress.tests;

import java.io.IOException;

public class AbreWord {

    public AbreWord() {
        super();        
    }

    public static void main(String[] args) {
        try {
            // abre o outlook2003
            //Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler mailto:[email removido]?body=" + "Olá&subject=asdasdasdasd");
            // abre o word2003
            Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+arquivoDoc.toString().replace("\","/"));
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("ERRO: "+e);
        }

    }

}

este código rodava, agora diz que não existe o método main.....

Se eu tento rodar este código a cima pelo prompt ele compila e na hora de rodar diz:
Exception in thread "main" java.lang.NoClassDefFoundError: AbreWord (wrong name:
nl/weev/adminexpress/tests/AbreWord)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Olhei as variáveis JAVA_HOME e PATH e estão assim:
JAVA_HOME=C:\Arquivos de programas\Java\jdk1.5.0_03
e
Path=C:\Arquivos de programas\Java\jdk1.5.0_03\bin;C:\WINDOWS\system32;C:\WINDOW
S;C:\WINDOWS\System32\Wbem;C:\Arquivos de programas\Microsoft SQL Server\80\Tool
s\BINN;C:\ARQUIV~1\GNU\WINCVS~1.3\CVSNT
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
Mas qdo coloco set CLASSPATH
dá: Variável de ambiente CLASSPATH não definida

Meus arquivos todos estão em C:\wampp2\eclipse\workspace
se eu seto a variável CLASSPATH para este caminho continua dando
Exception in thread "main" java.lang.NoClassDefFoundError: AbreWord

Sei que esse assunto de CLASSPATH já tá velho, mas procurei sobre isso aqui no Guj e no google, e não achei algo que resolvesse, talvez eu não tenha usado as palavras certas para a pesquisa......

mas se alguém souber me ajudar..... eu agradeço!

11 Respostas

wandersonxs

Tente rodá-lo assim:

java C:\diretórioqualquer\nl.weev.adminexpress.tests.AbreWord

substitua o diretório qualquer até chegar a pasta nl.

Abraços
Wanderson

L

O comando que você está usando para
executar o aplicativo é esse?

java nl.weev.adminexpress.tests.AbreWord
A

Obrigada por responderem…

tentei assim:
C:\wampp2\eclipse\workspace\AdminExpress\src\nl\weev\adminexpress\tests>java C:
wampp2\eclipse\workspace\AdminExpress\src\nl.weev.adminexpress.tests.AbreWord
Exception in thread “main” java.lang.NoClassDefFoundError: C:\wampp2\eclipse\wor
kspace\AdminExpress\src\nl/weev/adminexpress/tests/AbreWord

e depois tentei assim:

C:\wampp2\eclipse\workspace\AdminExpress\src\nl\weev\adminexpress\tests>java nl.
weev.adminexpress.tests.AbreWord
Exception in thread “main” java.lang.NoClassDefFoundError: nl/weev/adminexpress/
tests/AbreWord

Continua com a Exception…

ranophoenix

Entre no diretório de modo q se vc der um dir vc veja a pasta nl.

Daí então:

java -classpath . nl.weev.adminexpress.tests.AbreWord
A

Ainda não tb..

C:\wampp2\eclipse\workspace\AdminExpress\src>dir
 O volume na unidade C não tem nome.
 O número de série do volume é 9828-64FD

 Pasta de C:\wampp2\eclipse\workspace\AdminExpress\src

16/05/2005  09:38    <DIR>          .
16/05/2005  09:38    <DIR>          ..
16/05/2005  09:38    <DIR>          CVS
16/05/2005  09:38    <DIR>          nl
               0 arquivo(s)              0 bytes
               4 pasta(s) 112.345.059.328 bytes disponíveis

C:\wampp2\eclipse\workspace\AdminExpress\src>java -classpath . nl.weev.adminexpr
ess.tests.AbreWord
Exception in thread "main" java.lang.NoClassDefFoundError: nl/weev/adminexpress/
tests/AbreWord

C:\wampp2\eclipse\workspace\AdminExpress\src>
wandersonxs

faça isto q esta fazendo mas saia do diretório dos pacotes…
vá por exemplo em C:\ e rode este mesmo comando.

Abraços
Wanderson

A

assim?

C:\>java -classpath . nl.weev.adminexpress.tests.AbreWord Exception in thread "main" java.lang.NoClassDefFoundError: nl/weev/adminexpress/ tests/AbreWord

A

Acho que está quase… heheheh

Setei o CLASSPATH para:

CLASSPATH=C:\wampp2\eclipse\workspace\AdminExpress\bin

agora do prompt se eu executar:
java nl.weev.adminexpress.tests.AbreWord

funciona.

Mas no eclipse continua sem funcionar nada. Como devo fazer?

Muito obrigada pela ajuda!

ranophoenix
C:\wampp2\eclipse\workspace\AdminExpress\src

No diretório src geralmente contém os arquivos .java. Vc não pode dar o comando para executar uma classe não compilada, por isso o comando q eu te dei não pegou. E pq pegou quando vc mudou de diretório? Pq vc foi pro diretório bin, q com certeza é onde está a classe compilada. Já no eclipse, vc pode ir em propriedades do projeto e adicionar este seu diretório bin ao classpath.

A

Olá!!!
Sim, eu tinha percebido que na pasta bin estava os .class e fui no eclipse e defini o CLASSPATH apontando para aquele local só que continuou não funcionando… então… resolvi o problema de junta!!! heheheh
tirei o eclipse e instalei novamente, agora funcionou!

Obrigada!

ranophoenix

As vezes a melhor solução é a de “junta” mesmo. :smiley: De vez em quando esse mundo lógico tem comportamentos aparentemente ilógicos. Mas é assim mesmo :thumbup:

Criado 6 de junho de 2005
Ultima resposta 7 de jun. de 2005
Respostas 11
Participantes 4