Consigo Compilar mas não consigo rodar

30 respostas
C

Boa tarde pessoal.
é o seguinte

eu comprei um livro de Java.
e no 1º exercicio já me ferrei

no exemplo ele manda escrever no código
System.out.Println(“Hello World !”);

até aí tudo bem. salvo o arquivo .java, aí vou no no prompt do windows e executo o comando (com ou sem extensão)

javac nomeArquivo.java

Compila numa boa.

mas quando eu dou faço (com ou sem extensão)

java nomearquivo.class

não funfa
fica dando um erro muito doido…

já se eu pegar esse mesmo código e executar pelo Netbeans 6.1, funciona normal

o que pode está acontecendo… já configurei as variaveis de ambiente corretamente

JAVA_HOME=C:\Arquivos de programas\Java\jdk1.5.0_15
CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;
PATH=;%JAVA_HOME%\bin

OBS:
1-Em que interferem os ; e os . nas variaveis de ambiente
2-Pq os exemplos .class do CD do Livro eu consigo rodar pelo prompt e os meus pelo Bloco de Notas e gerados pelo NetBeans 6.1 não consigo ?

Pasta de Instalação do JDK
http://img128.imageshack.us/img128/2214/pastainsez3.jpg

Arquivos .java e .class
http://img525.imageshack.us/img525/3530/arqnetbeanstp5.jpg

30 Respostas

Benvenuto

quando tu rodar o arquivo de classe não use a extensão .class use:

java NomeDoArquivo(e não “java NomeDoAquivo.class”)

espero que seja isso :wink:

[]'s.

C

já fiz das duas formas.

F

boa noite,

bom estou com o mesmo problema… instalei o java pelo app-get install (nao me lembro direito),

depois configurei as variaveis de ambiemte…

escrevi um codigo simples de Hello world e depois compilei com o javac normal

tipo
javac Hello.java
java Hello 'aki dá erro quando vo executar ;d

bash java: comando nao encontrado

se alguem puder me ajudar… agradeço desde ja.

ate

C

Mais Alguém ?

davidpaniz

Que erro que dá?

C

Segue a imagem do erro

B

Pra rodar é java nome_da_classe, sem .class mesmo.

Dentro do seu Main.java tem um método public static void main (String args[])? Todo programa java precisa ter pelo menos um desse.

Edit: Um HelloWorld.java super básico como exemplo:

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

C

Eu tentei das duas formas… com e sem extensão.
no NetBeans roda normal…só que no prompt nada…
segue a imagem.

http://img105.imageshack.us/img105/9489/imagemmj6.jpg

B

Rodei aqui pelo console normal.

Tentar apagar a variável do CLASSPATH.

C

removi
fica a mesma coisa
como ficaria se eu entrasse nos arquivos .jar e indicasse o caminho do arquivo class ?

PS: o interessante é que tem alguns projetos compilados e funcionam pelo prompt
só que o que eu faço pelo netbeans não funciona somente no prompt, compila mas não executa;

davidpaniz

pelo que vi, imagino que a primeira linha do seu codigo seja

package welcome1

Se reamente for isso, use java welcome1.Main para executar

C

Mesmo Erro.
Exception in thread “main” java.lang.NoClassDefFoundError: welcome1/Main

B

Já sei qual o erro:

Coloque o arquivo dentro da pasta welcome1

e de fora dessa pasta, java welcome1/Main, ou java welcome1.Main.

C

coloquei o arquivo Main.class no raiz “C:”

e executei
java welcome1/Main

ou
java Main

e nada funciona…

C

não funfou…
faz assim, me manda um arquivo class simples aí pra eu executar aqui

C

segue a imagem dele rodando no netbeans 6.1
http://img262.imageshack.us/img262/4264/imagemkq5.jpg

B

Vê esta imagem como eu fiz

HelloWorld.class tá dentro de hello, ele foi compilado daquela classe que postei, só mas com um package hello; no começo

de fora de hello, java hello.HelloWorld

edit:

A classe inteira, HelloWorld.java:
package hello;

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

davidpaniz

Cria na raiz (C:) a pasta welcome1. Dentro dela coloca seu Main.class.
Agora, com o cmd no C:> digite java welcome1.Main

C

:smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

renrutal tá a meia hora explicando a forma de fazer isto…
mas eu sou muito burro. acho que foram os seis anos programando em vb6 que me deixou assim.
kkkkkkkkkkkkkkkkkkkkk

aí veio o davidpaniz me mostrou como se faz pra clicar no mouse (que nem aqueles cursos de windows) e não é que deu certo… acho que tou começando a concordar com a teoria que programadores VB só tem QI de dois digitos
kkkkkkkkkkkkkkkkkkkk

Cara(s), Muito Obrigado mesmo pela atenção!

Tem alguma forma de pontuar/finalizar o tópico/post ?

Abração e Muito Obrigado novamente.

B

Conseguiu?

C

sim

F

bom… nosso amigo coonseguiu… mas eu naoo ;ç

o erro parece ser um pouco diferente mas tudo bem…

eu instalei o jdk no linux… configurei as variaveis de ambiente… e etc… fiz um Hello.java simples de tudooo… compilei… e nao deu nenhum erro,

crio o .class e etc
mas quado eu vo executar…

java Hello

dá um erro tipo assim…

bash java:comand not found ou algo assim…

eu uso ubuntu 8.04

ps: quando eu compilo e executo no windows o msm codigo funciona ;~

agradeco desdeja

até

B

Isso é erro de path no sistema. O diretório bin do java não está nele.

Aliás o ubuntu deveria já ter preenchido o path dele com o java se vc instalaou ele normalmente, muito estranho.

Dê um echo $path p/ ver o que tem dentro dessa variável de sistema.

B

Mais info (digitando ubuntu e java no google):

http://wiki.ubuntubrasil.org/Java

netShot

Se instalar o jdk pelo genrenciador de pacotes Synaptic no ubuntu, ele configura tudo automaticamente ,
eu uso o 8.04 e não precisa configurar o class path manual.

Sobre o Synapitc:

Ler mais…

C

Certo, funcionou numa boa.
mas agora outro colega me disse uma coisa que eu fiquei “encucado”

"Se você usou “package” e compilou para um Java Archive (JAR), o comando para executar é:

java -jar “NomeDoArquivoJar.jar”"

isso procede ?
Qual a diferença de .jar e .class ?

e outra coisa…
como eu faço pra rodar o aplicativo entrando na pasta.
tipo… entrar direto na pasta welcome1 e digitar somente
java Main.class ?

Grato!
Abraços!

davidpaniz

O nome da classe é composto pelo “nome” dela mais o pacote, tanto é que você pode ter classes com o mesmo nome em pacotes diferente. Logo, se no seu java tem um package o nome da classe na hora de chamar o java é pacote.Nome.
Usando o exemplo do nosso amigo com welcome1.Main:
Quando você chamar o java welcome1.Main, ele vai procurar o class “Main.class” dentro da pasta “welcome1”. se você já estiver na pasta welcome1 ele vai procurar por outra pasta welcome1 dentro dela, que não será encontrada.

Entenda .jar como um arquivo compactado com vários .class. É muito usado na distribuição de pacotes inteiros, como frameworks por exemplo.

C

Muito Obrigado pelos esclarecimentos;

vou voltar pro livrão. Qualquer coisa abuso vcs novamente. :smiley:

F

boa noite galera… consegui resolver meu problema,

da até vergonha de fala… o meu problema mas eu fucei fucei fucei e voltei ao básico do básico…

nao tinha dado permissao pro java e o javac serem executados ;~

mas eu dei permisao e funciono “SUAVEE” ^^

vlw todo mundoo! :smiley:

Guike

Eu li o topico inteiro e mesmo assim não consegui resolver meu problema, estou executando no windows 7, ele compila mas não executa :confused:

Criado 11 de maio de 2008
Ultima resposta 8 de jul. de 2011
Respostas 30
Participantes 7