Problemas na Execução - JDK1.6.0_10

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



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.

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>

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

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.

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

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.

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)

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.

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>

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???

Galactus,

Essa é a mesma versão que estou utilizando.

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.

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

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

é 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

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

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

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.