[RESOLVIDO] java javac -classpath

4 respostas
I

Tenho essa arvore de diretorios:
Projetos
|_ _ fontes
|
_ _classes

abaixo seus respectivos códigos:

X.java

package com.naosei;

import com.seila.X2;
import java.util.*;
import java.text.*;

public class X{
	public static void main(String args[]){
		NumberFormat nf = NumberFormat.getInstance();
		String s = nf.format(123);
		System.out.println(s);
		
		X2 x2 = new X2();
		x2.fazer();
		
		try{
			Number x = nf.parse(s);

		}catch(ParseException p){
			p.printStackTrace();
		}
	}
}

X2.java

package com.seila;

public class X2{
	public void fazer(){
		System.out.println("olá");
	}
	
}

compilo com este comando os arquivos:

javac -d Projetos\classes Projetos\fontes\com\seila\X2.java //funciona
javac -classpath Projetos\classes -d Projetos\classes Projetos\fontes\com\naosei\X.java //funciona

então sozinho ele cria as pastas respectivas dentro de classes. blz!

Agora na hora de executar eu dou esse comando

java -classpath Projetos\classes Projetos\classes\com\naosei\X //não funciona

e dá esse erro:

Exception in thread main java.lang.NoClassDefFoundError: Projetos\classes\com\naosei\X

Caused by: java.lang.ClassNotFoundException: Projetos\classes\com\naosei\X

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: Projetos\classes\com\naosei\X.  Program will exit.

pq ta dando esse erro?
Alguem pode me ajudar?!
só quero lembrar que o programa não tem lógica mesmo, é só um código pra testa. =)
muito obrigado!

4 Respostas

discorpio

Boa noite IronM.

Voce esqueceu de informar a extensão do arquivo X que é “X.jar”, assim:

java -classpath Projetos\classes Projetos\classes\com\naosei\X.jar

Quando o compilador java, ou interpretador java, como preferir chamar, interpreta o seu arquivo, ele pode tanto interpretar arquivos “.class" que são apenas uma classe, ou um projeto zipado ".jar” contendo várias classes.

I

Mas não é um arquivo .jar e sim um .class, e mesmo colocando X.class não funfa, nem .jar
obrigado!

discorpio

Boa noite IronM.

Tá explicado porque não funfa.

O código que voce passou, está em dois diretórios (naosei e seila), onde voce criou esses dois pakages, e certamente o Javac.exe compilou as duas classes e compactou todos os packages em “*.jar”.

Liste o seu diretorio de onde voce está compilando para ver se voce encontra algum arquivo “X.class” ou “X.jar”.

Se voce encontrar o arquivo “X.jar”, então tente executar ele assim:

java -jar Projetos\classes Projetos\classes\com\naosei\X.jar
I

descobri, o comando seria:

java -classpath Projetos\classes com.naosei.X

obrigado pela força discorpio!
vlw

Criado 17 de julho de 2010
Ultima resposta 18 de jul. de 2010
Respostas 4
Participantes 2