Compilar .class

10 respostas
V

Bom pessoal, estou com algumas duvidas, do tipooooo eu queria complicar um .class que fiz no netbeans... dai eu fui na pasta e tentei utilizar o comando java porém ele da o erro de acordo com a imagem abaixo

Microsoft Windows [versão 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados.

C:\Users\Hkrpc>cd..

C:\Users>cd..

C:\>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\

24/09/2010  21:05    <DIR>          amzi_logic_explorer
17/09/2010  10:14    <DIR>          android
30/09/2010  03:01    <DIR>          ATI
02/10/2010  12:15    <DIR>          benchmark
15/09/2010  10:12    <DIR>          BlueJ
24/09/2010  11:15    <DIR>          Brasfoot2010
15/09/2010  08:41    <DIR>          Dev-Cpp
15/09/2010  08:40    <DIR>          Dev-Pas
16/09/2010  23:57    <DIR>          downloads
17/09/2010  00:05    <DIR>          Eclipse
15/09/2010  10:18       104.141.603 eclipse-java-helios-win32-x86_64.zip
14/07/2009  00:20    <DIR>          PerfLogs
21/09/2010  07:05    <DIR>          Program Files
02/10/2010  10:51    <DIR>          Program Files (x86)
24/09/2010  09:29    <DIR>          Projetos_Eclipse
30/09/2010  10:10    <DIR>          Root
15/09/2010  10:27    <DIR>          temp
15/09/2010  01:36    <DIR>          Users
29/09/2010  20:11    <DIR>          Windows
               1 arquivo(s)    104.141.603 bytes
              18 pasta(s)   129.237.250.048 bytes disponíveis

C:\>cd benchmark

C:\benchmark>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\benchmark

02/10/2010  12:15    <DIR>          .
02/10/2010  12:15    <DIR>          ..
02/10/2010  12:15    <DIR>          build
29/09/2010  10:33             3.722 build.xml
05/10/2010  07:24    <DIR>          c
29/09/2010  10:33                85 manifest.mf
02/10/2010  12:15    <DIR>          nbproject
29/09/2010  11:30                47 null
02/10/2010  12:15    <DIR>          src
29/09/2010  11:30        70.000.000 temp.txt
29/09/2010  10:33    <DIR>          test
               4 arquivo(s)     70.003.854 bytes
               7 pasta(s)   129.237.250.048 bytes disponíveis

C:\benchmark>cd build

C:\benchmark\build>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\benchmark\build

02/10/2010  12:15    <DIR>          .
02/10/2010  12:15    <DIR>          ..
02/10/2010  12:15    <DIR>          classes
               0 arquivo(s)              0 bytes
               3 pasta(s)   129.237.250.048 bytes disponíveis

C:\benchmark\build>cd classes

C:\benchmark\build\classes>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\benchmark\build\classes

02/10/2010  12:15    <DIR>          .
02/10/2010  12:15    <DIR>          ..
29/09/2010  10:38                 0 .netbeans_automatic_build
02/10/2010  12:15    <DIR>          benchmark
               1 arquivo(s)              0 bytes
               3 pasta(s)   129.237.250.048 bytes disponíveis

C:\benchmark\build\classes>cd benchmark

C:\benchmark\build\classes\benchmark>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\benchmark\build\classes\benchmark

02/10/2010  12:15    <DIR>          .
02/10/2010  12:15    <DIR>          ..
29/09/2010  11:27               522 Main.class
29/09/2010  11:28               751 Principal$1.class
29/09/2010  11:28               539 Principal$2.class
29/09/2010  11:28             5.223 Principal.class
               4 arquivo(s)          7.035 bytes
               2 pasta(s)   129.237.250.048 bytes disponíveis

C:\benchmark\build\classes\benchmark>java Main.class
Exception in thread "main" java.lang.NoClassDefFoundError: Main/class
Caused by: java.lang.ClassNotFoundException: Main.class
        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)
Could not find the main class: Main.class.  Program will exit.

C:\benchmark\build\classes\benchmark>

10 Respostas

R

Use o comando “java Main” (sem escrever “.class”) e deve funcionar.

zoren

Os arquivos .class já estão compilados

Os arquivos .java que ficam na pasta src é que devem ser compilados

javac Main.java
java Main
V

Tipo eu preciso executar esse projeto de modo que apareça a telinha que criei... porém eu vou chamar o JAVA por um programa que fiz em C entende ?

Obs1: Javac e Java pelo prompt apareceu isso

C:\benchmark\src\benchmark>dir
 O volume na unidade C não tem nome.
 O Número de Série do Volume é CE2C-946C

 Pasta de C:\benchmark\src\benchmark

02/10/2010  12:15    <DIR>          .
02/10/2010  12:15    <DIR>          ..
29/09/2010  10:39               197 Main.java
29/09/2010  11:28             6.455 Principal.form
29/09/2010  11:28             6.518 Principal.java
               3 arquivo(s)         13.170 bytes
               2 pasta(s)   129.172.307.968 bytes disponíveis

C:\benchmark\src\benchmark>java Main
Exception in thread "main" java.lang.NoClassDefFoundError: Main
Caused by: java.lang.ClassNotFoundException: Main
        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)
Could not find the main class: Main.  Program will exit.

C:\benchmark\src\benchmark>javac Main
'javac' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\benchmark\src\benchmark>
E

O comando é “java -cp . Main”

zoren

E para compilar os fontes no Prompt, vc deve setar as variáveis de ambiente do windows

Carlos_ds_jar

Meu amigo! .class não se compila, maconha não se cheira e cocaina não se fuma…

Lucas_Abbatepaolo

Para compilar seu .java vc usa JAVAC “NomdaDaClasse.java”
Para executar seu .class voce usa JAVA “NomeDaClasse.class”

So q para isso vc tem q estar dentro da pasta onde esta o .class e ter a variavel de ambiente JAVA.

Para o arquivo ser executado ele deve ter sido compilado antes…

Se vc não tiver a variavel de ambiente vc tem 2 saidas…
ou vc cria ela
ou vc vem direcionando de onde ela esta
ex.
c:\Program Files\Java\jdk1.6.0_19\bin\java.exe “NomeDaClasse.class”

Att.,

ViniGodoy

Você precisa de dois passos:

  1. Compilar os .java em arquivos .class, usando:
    javac Main.java

  2. Executar o .class usando
    java Main

Use a dica do Entanglement caso você não tenha a variável de ambiente CLASSPATH configurada.

Dê uma lida em nossos artigos:
http://www.guj.com.br/article.show.logic?id=16
http://www.guj.com.br/article.show.logic?id=108

ViniGodoy

Lucas Abbatepaolo:
Para executar seu .class voce usa JAVA “NomeDaClasse.class”

c:\Program Files\Java\jdk1.6.0_19\bin\java.exe “NomeDaClasse.class”

Para executar você não digita a extensão .class. Então corrigindo:
c:\Program Files\Java\jdk1.6.0_19\bin\java.exe NomeDaClasse

Lucas_Abbatepaolo

Me expressei mal…rs
queria dizer que ali vai o arquivo .class…

  • valew pela correção…rs
Criado 6 de outubro de 2010
Ultima resposta 6 de out. de 2010
Respostas 10
Participantes 7