Java.lang.NoClassDefFoundError

Senhores,

Preciso de ajuda
Estou com o erro:


java.lang.NoClassDefFoundError

que acontece nessa linha do codigo:

MetricaJavaBean voAux = new MetricaJavaBean(); 

Pelo que eu andei pesquisando esse erro acontece porque não conseguiu localizar a classe MatricaJavaBean.
A pergunta é a seguinte, se eu pressionar CTRL+ESPAÇO e aparecer a classe é porque na teoria foi possível localiza-la.

Se isso for correto, porque está ocorrendo esse erro?

Valeu

bom, sua class deve está no mesmo local que seu arquivo prinicipal ta chamando ela.
eu nao posso ter uma classe em outro diretorio e ta chamando em outro… assim ele dar q a classe que vc ta chamando nao foi encontrado no diretorio que o chama. se vc puder colocar a sintaxe ai completa… seria uma boa IDEIA. :lol:
Mas pelo pouco conhecimento que tenho, vc ta chamando uma class que n está no mesmo pacote do chamador…

Ela está em outro pacote? se sim, vc tem que importar ela usando o comando import.
Também verifica o classpath

Exatamente senhores…

Já adicionei o .jar no projeto e também já utilizei o import, veja:

import com.empresa.ra.lib.vo.MetricaJavaBean;

Um detalhe, se eu pressionar CTRL+ESPAÇO e aparecer a classe que estou precisando, isso quer dizer que a classe já está no meu projeto, certo?
Se sim, não deveria estar apresentando esse erro.

Alguem poderia me ajudar?

Voce está conseguindo rodar seu programa a partir da IDE e ele só não roda a partir do prompt de comando, certo?

Se este for o caso, pode ser que a classe MetricaJavaBean não esteja na pasta com/empresa/ra/lib/vo/, que é onde o arquivo será procurado (.JAR ou .CLASS).

EX, na classe que será instanciada fica o nome do package tipo “package com.empresa.ra.lib.vo;” e na classe que irá instanciar a outra ficará “import com/empresa/ra/lib/vo.*;”, sendo que a classe a ser chamada tera que ficar na pasta “vo/”

Eu tive esse mesmo problema, que foi resolvido após a execução dos passos acima.

Nem a partir do eclipse não está rodando…
Quando estou no debug e vai tentar instanciar a classe ocorre o erro.

Segue o codigo completo:

public ArrayList getMetricaDataCon(
			String[] metricaList, 
			Date dataIni, 
			Date dataFin) throws TechnicalException{
		
		ArrayList retorno = new ArrayList();
		MetricaVo[] metricaRetorno = null;
		TreeMap metricaMap = new TreeMap();

		SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
		
		Date tempDate = dataIni;
		GregorianCalendar cal = new GregorianCalendar();

		for (int i=0; i<metricaList.length;i++)
		{
		
			DaoFactory df = DaoFactory.getDaoFactory(DaoFactory.DATASOURCE);
		
			try{
				//criando daos de acesso
				IdDadosDao idDadosdao = df.getIdDadosDao(new String[]{});
				IdMetricasDao idMetricasDao = df.getIdMetricasDao(new String[]{});
			
				String[] ids = null;
				//pesquisa os IDs da métrica
				 ids = idMetricasDao.getMetricaIds(metricaList[i]);
				 
			
				 //pesquisa os valores dos IDs em um período
				 IndicadorVo[] idLista = 
					 idDadosdao.getIdMetricaData(dataIni, dataFin, ids);
			
				 for (int y = 0; y >&lt idLista.length; y++) {
					 String strDate = idLista[y].getPeriodo();
					 cal.set(Integer.parseInt(strDate.substring(0, 4)), 
							 	Integer.parseInt(strDate.substring(4, 6)) - 1, 
								Integer.parseInt(strDate.substring(6, 8)));
					MetricaVo vo = (MetricaVo)metricaMap.get(cal.getTime());
					if (vo == null){
						 vo = idMetricasDao.getMetrica(metricaList[i]);
					}

					 double tempValor = 0;
					 if (Double.isNaN(vo.getIdValor(idLista[y].getId()))){
						 tempValor = idLista[y].getValor();
					 } else {
						 tempValor = idLista[y].getValor() + vo.getIdValor(idLista[y].getId());
					 }
					 vo.setPeriodo(formatter.format(cal.getTime()));
					 vo.putIdValor(idLista[y].getId(), tempValor);
					 metricaMap.put(cal.getTime(), vo);
					 
				 }
				 
				 Iterator it = metricaMap.entrySet().iterator();
				[b] MetricaJavaBean voAux = new MetricaJavaBean();[/b]
				 while (it.hasNext()){
					 Entry entry = (Entry)it.next();
					 retorno.add((MetricaVo)entry.getValue());
					 MetricaVo vo1 = ((MetricaVo)entry.getValue());
					 voAux.setMetrica(metricaList[i]);
					 voAux.setPeriodo(vo1.getPeriodo());
					 voAux.putPeriodoValor(vo1.getPeriodo(),vo1.getMetricaValue()); 
				 }
				 metricaMap = new TreeMap();

			} catch (DaoException daoEx){
				throw new TechnicalException("Ocorreu uma exceção ao acessar o banco de dados: ", daoEx);
			}
			
		}

O erro ocorre aonde está em negrito. (ou deveria estar em negrito)

O mais engraçado, é que no mesmo .jar externo eu utilizo a classe IndicadorVo, e ela funciona e essa nova classe que eu criei não está funcionando…

Nossa…

Pelo jeito minha situação é complicada…
Porque ninguem respondeu.

Então vou tentar fazer outra coisa…

Valeu,

Fabiano