Problema na compilação do programa "Hello World"

23 respostas
A

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,

23 Respostas

Adriano_Almeida

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.

A

Grato pela dica, consegui compilar da seguinte forma:C:&gtjavac 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:&gt;

biozit

como vc tentou executar ?

para executar vc tende fazer assim

java HelloWorld

se não funcionar assim tem de ver o prog…

A

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!

M

vc deve digitar o nome igualzinho, ou seja, X não é igual a x, o 1º está em maiúsculo tenta aí vlw !!!

biozit

Se não funcionar ainda posta o codigo aí!!

lalesan

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…)

R

AlbertSigns, poste o seu código…
falows

A

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!

Danuzio_Oliveira

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.

esantana

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
:wink:

esantana

Ahh … no seu caso, vc pode tirar a primeira linha que descreve o package

Danuzio_Oliveira

não estou conseguindo!
Em partes:

  1. Meu hd está particionado em C: e D: (S. Operacional -Windows- na D:)

  2. 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:

  3. 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.
Andre_Brito

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.

LPJava

olha se sua configuração esta como em anexo…

Danuzio_Oliveira

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

Rafael_Steil

Execute-o assim:

java -cp . HelloWorldConsole

Note que eh “-cp PONTO” (o caracter de ponto)

Rafael

Andre_Brito

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.

Rafael_Steil

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

Danuzio_Oliveira

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ê fizer

java HelloWorld

Deva funcionar.

D:>java HelloWorld
resultado: Hello World!

Vlw Dedé, Rafael, LPJava, esantana…
Ótimo 2008 p todos.

Danuzio_Oliveira

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.

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

A

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!

A

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!

Criado 1 de janeiro de 2007
Ultima resposta 11 de fev. de 2008
Respostas 23
Participantes 11