Problemas na Execução - JDK1.6.0_10

18 respostas
C

Estou aprendendo JAVA através do Livro JAVA 6: ENSINO DIDÁTICO: DESENVOLVENDO E IMPLEMENTANDO APLICAÇÕES (Ségio Furgeri, 1ª Edição - São Paulo - Érica).

  • Os exemplos são desenvolvidos no ambiente de desenvovimento JDK1.6.0_03, cujo download não consegui localizar, tendo como solução o download da versão mais recente na página da Sun Microsystems (JDK1.6.0_10), instalado aparentemente com sucesso (efetuei o comando Javac na linha de comando, conforme orientado, e foi apresentada a tela com as instruções de help).

  • Apesar de conseguir compilar os dois primeiros exemplos (Exemplo0101 e Exemplo0201), não consigo executar os mesmos, apresentado as mensagens de erros constantes nas telas anexadas tópico, capturadas após as tentativas frustradas.

public class Exemplo0101

{

public static void main (String args[])

{

System.out.println(Início do aprendizado);

System.out.println(Ensino Didático da Linguagem Java);}

}

Após a compilição no prompt de comando:

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>javac exemplo0101.java

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>java exemplo0101

Exception in thread main java.lang.NoClassDefFoundError: exemplo0101

Caused by: java.lang.ClassNotFoundException: exemplo0101

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: exemplo0101.  Program will exit.

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>

O erro do exemplo 2 é exatamente igual ao do exemplo 1.

Desde já agradeço a atenção dispensada,

Cláudio Rocha
Rio de Janeiro - RJ



18 Respostas

T

Cuidado com a diferença entre minúsculas e maiúsculas. Você teria de ter usado o seguinte comando para executar seu programa:

java Exemplo0101

não

java exemplo0101

É que sua classe começa com a letra E maiúscula.

C

Mesmo respeitando todas as maiúsculas e minúsculas, ainda assim persiste o erro.

public class Exemplo0101

{

public static void main (String args[])

{

System.out.println(Início do aprendizado);

System.out.println(Ensino Didático da Linguagem Java);	}

}

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>javac Exemplo0101.java

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>java Exemplo0101

Exception in thread main java.lang.NoClassDefFoundError: Exemplo0101

Caused by: java.lang.ClassNotFoundException: Exemplo0101

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: Exemplo0101.  Program will exit.

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>

GALACTUS

Com certeza deve ser as variáveis de ambiente, dá uma olhada direito no caminho que vocÊ colocou lá nas variáveis de ambiente.

T

Desculpe, acho que você tem de usar o comando:

java -cp . Exemplo0101

Muitos livros não levam em conta que, em algumas versões do Java, não existe um CLASSPATH default apontando para o diretório corrente, e omitem o parâmetro "-cp . " ou "-classpath . " para rodar programas simples.

Neto.Sabio

Voce esta executando direto o .class com a letra minuscula. Tenta recopilar o fonte usando a sintaxe correta.

GALACTUS

Cara. desencana dessa versão JDK1.6.0_10 que se eu não me engano éla é versão beta e não funciona corretamente. baixa essa versão aqui ó JDK1.6.0_7 e configura as variáveis de ambiente com essa versão.
Ve se da certo.

T

Ela funciona bem melhor que as versões finais; não é porque é beta que não vai conseguir rodar um “hello, world”. É só tomar o cuidado de pegar a versão beta mais nova possível (no meu caso eu rodo a b28, mas acho que deve haver algo mais recente ainda)

C> java -version

java version "1.6.0_10-rc"
Java(TM) SE Runtime Environment (build 1.6.0_10-rc-b28)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
GALACTUS

que legal cara, eu não sabia que éra isso porque eu tinha tentado com a versão JDK1.6.0_10 e não dava certo, então eu baixei a outra versão JDK1.6.0_7 e funcionou corretamente, eu vou baixar éssa versão que você tem JDK1.6.0_10-rc e configurar as variáveis pra ver se funciona, já já eu lhe informo se funcionol beleza thingol.

C

Alterei as Variáveis de Ambiente como Variaveis de Sistema

Verifiquei a Versão

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>java -version
java version “1.6.0_10-rc2”
Java™ SE Runtime Environment (build 1.6.0_10-rc2-b32)
Java HotSpot™ Client VM (build 11.0-b15, mixed mode, sharing)

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>

Executei conforme a seguir:

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>java -cp Exemplo0101

Usage: java [-options] class [args]

(to execute a class)

or  java [-options] -jar jarfile [args]

(to execute a jar file)

where options include:
-client to select the “client” VM
-server to select the “server” VM
-hotspot is a synonym for the “client” VM [deprecated]
The default VM is client.

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
              A ; separated list of directories, JAR archives,
              and ZIP archives to search for class files.
-D<name>=<value>
              set a system property
-verbose[:class|gc|jni]
              enable verbose output
-version      print product version and exit
-version:<value>
              require the specified version to run
-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:<jarpath>[=<options>]
              load Java programming language agent, see java.lang.instrument

-splash:<imagepath>
              show splash screen with specified image

C:\Cláudio\Livro Java (JAVA 6)\Capítulo 1>

GALACTUS

EI THINGOL, A VERSÃO que eu baixei(mas não instalei ainda) é a jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008, eu notei que a sua versão é rc e não rc2, será que essa que eu baixei não da problema???

C

Galactus,

Essa é a mesma versão que estou utilizando.

GALACTUS

Cara, eu acabei de instalar essa versão, conifigurei as variáveis, e roda os programas direitinho.
So que quando eu digito pra ver a versão do java ele aparece assim.

java version “1.5.0_07”

Achei estranho porque éra pra aparecer a versão 1.6.0_10 que acabei de instalar.

Véiu, esses bagulho de versão do java é embassado viu.

GALACTUS

Cara, baixa outra versão do java e tenta de novo, quem sabe.
baixa a versãi jdk1.6.0_7 e vê se funciona

victorwss

Tente colocar em uma pasta que não tenha espaços, acentos e nem caracteres especiais no nome. Vê se isso resolve.

GALACTUS

é cara, pode crê, pega esse arquivo.java que vocÊ fez no bloco de notas e joga ele no C: que fica bem melhor e mais acessivel pra você.
Depois feito isso é só:

C:javac NomeDoPrograma.java

C:java NomeDoPrograma

C

Valeu gente. Juntei um pouco de cada dica e acabou funcionando (pasta no diretório raiz, parâmetro -cp para execução, etc).

Esse fórum é muito bom e a galera é muito prestativa. Abraços.

Cláudio

GALACTUS

Demorô véiu, logo logo é você que vai estar ajudando os outros manos.

C

Eu julgava que o problema estava resolvido usando a compilação: java -cp . nomedaclasse mas quando iniciei os estudos de Acesso a Métodos de Outras Classes empaquei outra vez. Outras vez problemas no classpath (Variáveis de Sistema: C:\Arquivos de programas\Java\jdk1.6.0_10\lib). Alguém poderia me dar uma ajuda para resolver de vez esse problema de configuração no Windows XP Home Edition Versão 2002 Service Pack 3.

Criado 22 de setembro de 2008
Ultima resposta 30 de set. de 2008
Respostas 18
Participantes 5