Quando digito no prompt: javac HelloWorld.java, aparece a mensagem: “cannot read HelloWorld.java
1 error”, e não compila o arquivo apesar do mesmo existir.
Preciso desta informação para seguir em frente.
Grato,
Problema na compilação do programa "Hello World"
23 Respostas
Olá,
Você não deve estar no mesmo diretório do seu arquivo .java! Vá para o diretório do arquivo .java e faça o javac nele. Se não for o caso, veja se o nome do arquivo está digitado corretamente.
Grato pela dica, consegui compilar da seguinte forma:C:>javac Java_testes(pastadoarquivo)\HelloWorld.java , gerando o arquivo .class,
porém ao tentar executar aparece a mensagem de erro: exception in thread "main" java.lang.NoClassDefoundError:<wrong name: HelloWorld, sendo que a digitação é fiel à todos os tutoriais.
Tem jeito?
Grato mais uma vez!
Dica DOS: CD\ leva à raiz; ex.:C:>
como vc tentou executar ?
para executar vc tende fazer assim
java HelloWorld
se não funcionar assim tem de ver o prog…
Já tentei: java HelloWorld e também java Java_testes\HelloWorld e não executou, apresentando a citada mensagem de erro que acusa como culpado o nome do arquivo. Obs.: ao compilar (javac) não exibiu mensagem de erro.
Continuo aguardando ajuda, muito obrigado!
vc deve digitar o nome igualzinho, ou seja, X não é igual a x, o 1º está em maiúsculo tenta aí vlw !!!
Se não funcionar ainda posta o codigo aí!!
AlbertSigns, tbm tive problemas com o HelloWorld, mas meu problema tava na classpath que eu configurei errado…
Agora tudo dá certo (compilação e execução), tô fazendo tudo no mesmo diretório e esse diretório tá declarado lá na classpath - o q eu, particularmente, acho uma mão na roda… Vc já experimentou fazer tudo numa pasta só e declarar essa pasta lá na tua classpath? (E não esquecer, como falou alguém aí em cima, q o java diferencia maiúsculas de minúsculas, muita atenção…)
AlbertSigns, poste o seu código…
falows
Finalmente consegui! Graças à colaboração de todos vocês, muita pesquisa, mão na massa e noções obtidas na matéria do Rafael Steil: Classpath, entendendo o que é e pra que serve. Meu problema estava na configuração do Classpath onde acrescentei o nome da pasta/testes que criei para meus códigos e arquivos. Ficou assim a conf. das variáveis de ambiente: CLASSPATH=.;JAVA_HOME.;Java_testes
JAVA_HOME=D:\Jdk1.5.0_10
PATH=D:\jdk1.5.0_10\bin
Obs.: meu Windows foi instalado na partição D:\ quando o normal seria C:\
Valeu a força Galera! Quanto mais eu souber, mais ajudo também.
Abraço!
Algum erro? Já tentei diretório, renomear pasta e tudo, meio perdido ( p falar a verdade todo perdido!)
HelloWorldClass também não dá certo!
Alguém aí com uma luz a mais?
Grato.
acho que vc quiz dizer isso certo ?
package br.com.teste;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class HelloWorldSwing
{
public static void main ( String args [] )
{
JFrame frame = new JFrame ( "Hello" ) ;
JLabel label = new JLabel ( "Hello, Swing World" ) ;
frame . getContentPane ( ) . add ( label ) ;
frame . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE ) ;
frame . pack ( ) ;
frame . setVisible ( true) ;
}
}
Tente com esse código acima

Ahh … no seu caso, vc pode tirar a primeira linha que descreve o package
não estou conseguindo!
Em partes:
-
Meu hd está particionado em C: e D: (S. Operacional -Windows- na D:)
-
Configuração das variáveis: CLASSPATH .;JAVA_HOME.;teste_Java
JAVA_HOME D:\Arquivos de programas\Java\jdk1.5.0_14
PATH D:\Arquivos de programas\Java\jdk1.5.0_14\bin
Obs: As mesmas config estão válidas para “Variáveis de usuário p Administrador” e “Variáveis do Sistema”.
O JSE e o JDK estão em uma outra subpasta nomeada Java sendo que essa está em Arquivos de programas locada na unidade D: sendo assim: D:\Arquivos de programas\Java\jdk1.5.0_14
D:\Arquivos de programas\Java\jse1.5.0_14
A pasta contendo o código-fonte do “HelloWorldSwing” está numa pasta que nomeei de: teste_Java (como fez o Colega AlbertSings ) a mesma também está locada na unidade D: -
acho que vc quiz dizer isso certo ?
Ahh ... no seu caso, vc pode tirar a primeira linha que descreve o package
Tentei com a linha que descreve o package e sem ela também!
Aí vai o código para que vcs possam analisar as possibilidades de erro.
[i]package br.com.teste;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class HelloWorldSwing
{
public static void main ( String args [] )
{
JFrame frame = new JFrame ( “Hello” ) ;
JLabel label = new JLabel ( “Hello, Swing World” ) ;
frame . getContentPane ( ) . add ( label ) ;
frame . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE ) ;
frame . pack ( ) ;
frame . setVisible ( true) ;
}
}
[/i]
obs: O arquivo está nomeado como: HelloWorldSwing.Java
Aguardo alguma dica ou correções. Grato.
Tente sem ser em Swing, pra ficar um pouco mais simples. Se ainda assim não compilar, daí provavelmente é problema com o classpath.
Coloque no bloco de notas e salve no D:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!\n");
}
}
Salve como HelloWorld.java
Vá em executar e digite cmd. Vá no diretório D:\ (com o comando cd D:) e digite javac HelloWorld.java e poste o resultado disso aqui.
Abraço.
olha se sua configuração esta como em anexo…
Tente sem ser em Swing, pra ficar um pouco mais simples. Se ainda assim não compilar, daí provavelmente é problema com o classpath.
Coloque no bloco de notas e salve no D:
view plaincopy to clipboardprint? public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!\n”); } } public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!\n”); } }Salve como HelloWorld.java
Vá em executar e digite cmd. Vá no diretório D:\ (com o comando cd D:) e digite javac HelloWorld.java e poste o resultado disso aqui.Abraço.
Fiz como vc disse, ou seja: quase.
Salvei como HelloWorld.java mas coloquei o mesmo numa pasta chamada teste_java, e quando tentei compilar a mensagem foi [b] error: cannot read: HelloWorld.java ( o diretório estava no D:>
Depois segui as instruções mais a risca, isto é: salvei (recortei p) diretamente no D:
Resultado: Surgiu no disco local D: um arquivo chamado HelloWorld.class (portanto o mesmo agora está compilado certo?)
Depois tentei executar o arquivo seguindo as instruções do Arquivo/Tutorial: D:> java HelloWorldConsole
a mensagem de erro agora é: Exception in thread main java.lang.NoClassDefFoundError: HelloWorldConsole
oO código-fonte (acho q é assim que se chama)está escrito assim:
[b]
public class HelloWorld {
public static void main (String[] args) {
System.out.println(“Hello World!\n”) ;
}
}
[/b]
Então a energia caiu e agora terminei de digitar tudo de novo, putz, pense!Mais é isso aí. Pelo menos já está compilando! Vlw dedejava
Execute-o assim:
java -cp . HelloWorldConsole
Note que eh “-cp PONTO” (o caracter de ponto)
Rafael
Rafael,
Desculpe me intrometer, mas para que serve o -cp .?
Bem, de toda forma, acredito que se você fizer
Deva funcionar.
Sim, quando surge um .class é porque foi compilado. Só que fique atento (pra quem está começando é normal): Se a sua classe é chamada de HelloWorld, tanto na hora da compilação você deve usar o javac HelloWorld.java (o mesmo nome da classe) quanto na execução -> java HelloWorld
Abraço.
Especifica o classpath. Para maiores infos, java --help
O que acontece muitas vezes eh o classpath estar definido para um diretorio especifico, sem conter o diretorio corrente , que eh representado por um ponto. Nisso, a vm nao encontra a classe.
Rafael
Fiz a configuração conforme o anexo. Blz. Ficou conforme o visto no Download do Tutorial.Vlw.
Execute-o assim:java -cp . HelloWorldConsole
Note que eh “-cp PONTO” (o caracter de ponto)
Rafael
Vamos lá
java-cp.HelloWorldConsole (tudo junto)
resultado: … Não é reconhecido como um comando interno ou externo, como um programa operável ou um arquivo em lotes
java(espaço) -cp.HelloWorldConsole
resultado: [b] Unrecognized option: cp-HelloWorldConsole
Could not create the Java Virtual Machine
java(espaço)-cp(espaço).(espaço)HelloWorldConsole
resultado: Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorldConsole
java(espaço)-cp(espaço).HelloWorldConsole.
Resultado: Apareceu tanta coisa que fiquei surpreso, parece mais bom nem sei o quê, entretanto nenhuma mensagem de erro. Depois diz pra gente ai o que é isso?!
Bem, de toda forma, acredito que se você fizerjava HelloWorld
Deva funcionar.
D:>java HelloWorld
resultado: Hello World!
Vlw Dedé, Rafael, LPJava, esantana…
Ótimo 2008 p todos.
Especifica o classpath. Para maiores infos, java --helpO que acontece muitas vezes eh o classpath estar definido para um diretorio especifico, sem conter o diretorio corrente , que eh representado por um ponto. Nisso, a vm nao encontra a classe.
A propósito, com o comando java -cp .HelloWorldConsole
resultado: Dentre os tantos a especificação do classpath aparece assim:
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.
Tenho alguma mudança a fazer nas minhas config. CLASSPATH
para Danúzio Oliveira
Olá amigo, se ainda não conseguiu vou tentar ajudá-lo, pois só vi hoje sua dúvida ao visitar o tópico. Vou focar apenas na configuração do ambiente de sistema:
1-Instale o jdk no diretório raiz, no seu caso D:, ficando assim:D:\jdk1.5.0_14
2-Instale o jre no diretório D:\Arquivos de Programas
3-Crie ou copie a pasta “teste_Java” para o diretório raiz D:\ (mas não dentro da pasta jdk)
Agora vamos configurar as variáveis de ambiente (pode ser Variável de Usuário) :
1-JAVA_HOME=D:\jdk1.5.0_14
2-CLASSPATH=.;JAVA_HOME.;teste_Java
3-PATH=D:\jdk1.5.0_14\bin
Obs.: Se estas variáveis não existirem será necessário criá-las!
Seu arquivo HelloWorld.java deve ser salvo ou estar na pasta
teste_Java.
no prompt ms dos, se aparecer por default "D:\Arquivos de Programas, vc deve digitar: cd e quando teclar “enter” este comando joga para a raiz: D:\ aí vc digita a seguir: javac teste_Java\HelloWorld.java, ficando assim: D:\javac teste_java\HelloWorld.java (tecle “enter”) vai compilar gerando o arquivo HelloWorld.class. Nesse momento o prompt volta à raiz D:\ e na sequência vc digita “java HelloWorld” para rodar o programa- D:\java HelloWorld o resultado será a impressão na tela do texto que estiver escrito no parênteses de System.out.println
Quando este código funcionar, todos os outros funcionarão. É bom para começar, mas o ideal é utilizar uma IDE como por ex. Eclipse ou JCreator.
Bom, espero que funcione pois seu problema parece falha na configuração.
Até a próxima!
para Danúzio Oliveira
Olá amigo, se ainda não conseguiu vou tentar ajudá-lo, pois só vi hoje sua dúvida ao visitar o tópico. Vou focar apenas na configuração do ambiente de sistema:
1-Instale o jdk no diretório raiz, no seu caso D:, ficando assim:D:\jdk1.5.0_14
2-Instale o jre no diretório D:\Arquivos de Programas
3-Crie ou copie a pasta “teste_Java” para o diretório raiz D:\ (mas não dentro da pasta jdk)
Agora vamos configurar as variáveis de ambiente (pode ser Variável de Usuário) :
1-JAVA_HOME=D:\jdk1.5.0_14
2-CLASSPATH=.;JAVA_HOME.;teste_Java
3-PATH=D:\jdk1.5.0_14\bin
Obs.: Se estas variáveis não existirem será necessário criá-las!
Seu arquivo HelloWorld.java deve ser salvo ou estar na pasta
teste_Java.
no prompt ms dos, se aparecer por default "D:\Arquivos de Programas, vc deve digitar: cd e quando teclar “enter” este comando joga para a raiz: D:\ aí vc digita a seguir: javac teste_Java\HelloWorld.java, ficando assim: D:\javac teste_java\HelloWorld.java (tecle “enter”) vai compilar gerando o arquivo HelloWorld.class. Nesse momento o prompt volta à raiz D:\ e na sequência vc digita “java HelloWorld” para rodar o programa- D:\java HelloWorld o resultado será a impressão na tela do texto que estiver escrito no parênteses de System.out.println
Quando este código funcionar, todos os outros funcionarão. É bom para começar, mas o ideal é utilizar uma IDE como por ex. Eclipse ou JCreator.
Bom, espero que funcione pois seu problema parece falha na configuração.
Até a próxima!