Hello World complicado

opa pessoal beleza?

não sei quantos já fizeram um Hello World no braço
usando um editor de texto + prompt de comand/shell +
java 5…

para um código:

public class HelloWorld {
   public static void main() {
      System.out.println( " Hello World! " );
   }
}

um codigo bem simples…
nome do arquivo é HelloWorld.java

envio o comando para compilação da classe

javac HelloWorld.java

sendo este comando executado no mesmo diretorio que se encontra o
arquivo HelloWorld.java, a compilação é realizada sem problemas…
agora solicito o comando de execução:

java HelloWorld

agora eis o problema o console me retorna um erro, de não ter encontrado o método executor na classe…

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

alguem mais no forum teve esse problema?
alguem sabe o por que isto ocorre apenas no java 5?
alguem encontrou uma solução para o problemas?
:roll:

abraços

Olá AnjoSupremo,

Você criou um método main sem parâmetros.

public static void main(String[] args) { ... }

Perceba o parâmetro do método (String[] args)!

Esse problema ia acontecer até mesmo no Java 1 :lol:

Até mais, :wink:

Erko, você precisa criar o método main com a seguinte assinatura e lista de parâmetros:

public static void main(String[] args) {}

aff foi mal erro de digitação…

o codigo esté correto mesmo, mas no post anterior digitei errado :razz:

public class HelloWorld { public static void main( String[] args ) { System.out.println( " Hello World! " ); } }

mas o erro é o descrito abaixo…

pessoal quem tiver um tempinho e tiver com o java 5
na máquina poderia tambem testar este seguinte caso? :roll:

Tenta

java -cp . HelloWorld

Primeiro você deve corrigir seu metodo main() depois você deve adicionar ao CLASSPATH um ponto, pois se não ele vai procurar por todas as classes disponiveis, mas não vai procurar no diretorio atual, pois ele não está especificado no CLASSPATH…

obs.: ponto é o diretorio atual no sistema operacional…

painel de controle --> sistema --> avançados --> variaveis de ambiente, editar ou criar CLASSPATH em variaveis do sistema e adicionar o . no valor

CLASSPATH = .

:wink:

[quote=“fabiofalci”]Tenta

java -cp . HelloWorld [/quote]

aeeee
ahuahuahuahuahua

agora com essa linha de execução funcionou!!! :lol:

agora alguem sabe o motivo?
por que com:

java -cp . HelloWorld funciona e com:

java HelloWorld gera o erro descrito… :roll:

Olá AnjoSupremo,

Provavelmente no seu sistema operacional a variável CLASSPATH está configurada com algum valor. Digite

echo $CLASSPATH

no Linux, ou

echo %CLASSPATH%

no Windows, e veja o valor dela. Como essa variável existe, quando você vai executar uma classe Java, a máquina virtual busca as classes de lá. E provavelmente, a sua classe não está no endereço da variável CLASSPATH.

A linha

java -cp . HelloWorld

Manda a máquina virtual esquecer a variável CLASSPATH e utilizar o classpath que você está informando a ela (no caso, o próprio diretório que você está). Por isso funciona.

Quando a variável CLASSPATH não existe no sistema, a máquina virtual procura, por padrão, sempre (e apenas) no diretório corrente (aquele em que você está chamando a máquina virtual). Por isso que eu nem coloco a variável CLASSPATH aqui :slight_smile:

Até mais,

Pelo motivo que falei aí, não tem um . no CLASSPATH, no codigo que passaram pra vc aí, está sendo colocado um . nele!

Olás,

uma dúvida, CLASSPATH é a mesma coisa que PATH?

Abs,
Rodolfo

Opa,

Classpath - http://www.google.com.br/search?q=define%3Aclasspath&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:pt-BR:official

Path - http://www.google.com.br/search?q=define%3Apath&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:pt-BR:official

:okok:

opa beleza?

bom as duas são diferentes, o CLASSPATH é utilizado pelo java
enquanto o PATH, pelo que me lembre é de uso do sistema operacional
:wink:

abraços