Applet não funciona no IE[resolvido]

Estou implementando aqui um caixa rapido, e para este caixa rapido preciso de uma applet que comunique com a impressora fiscal.
Chrome tranquilo… firefox também…
Porém no IE quando eu do reload na pagina ja era!
segue o código.

[code]import java.applet.;
import java.security.
;
import java.io.;
import java.awt.
;
import java.lang.reflect.Method;

public class sisCmdAcj extends Applet
{
String msg;
String base;

public void init()
{
	msg = this.getParameter("msg");
	base = this.getParameter("base");
}

public String EXIST(final String nome)
{
	String ret;
	try
	{
		ret = (String) AccessController.doPrivileged(new PrivilegedExceptionAction()
		{
			public Object run() throws Exception
			{
				File arq = new File(base + "/" + nome);
				if(arq.exists()) return "true";
				return "false";				
			}
		});
	}
	catch(Exception e)
	{
		StringWriter errors = new StringWriter();
		e.printStackTrace(new PrintWriter(errors));
		msg = errors.toString();
		return msg;
	}
	return ret;	
}

public String READALL(final String nome)
{
	String ret;
	try
	{
		ret = (String) AccessController.doPrivileged(new PrivilegedExceptionAction()
		{
			public Object run() throws Exception
			{
				File arq = new File(base + "/" + nome);
				BufferedReader br = new BufferedReader(new FileReader(arq));
				StringBuffer bufSaida = new StringBuffer();

				String linha;
				while( (linha = br.readLine()) != null )
				{
					bufSaida.append(linha + "\n");
				}
				br.close();
				return bufSaida.toString();		
			}
		});
	}
	catch(Exception e)
	{
		StringWriter errors = new StringWriter();
		e.printStackTrace(new PrintWriter(errors));
		msg = errors.toString();
		return msg;
	}
	return ret;	
}

public String READLN(final String nome, final int iLin)
{
	String ret;
	try
	{
		ret = (String) AccessController.doPrivileged(new PrivilegedExceptionAction()
		{
			public Object run() throws Exception
			{
				File arq = new File(base + "/" + nome);
				BufferedReader br = new BufferedReader(new FileReader(arq));
				StringBuffer bufSaida = new StringBuffer();

				int rLin = 0;
				String linha;
				while( (linha = br.readLine()) != null )
				{
					if(iLin == rLin)
					{
						br.close();
						return linha;
					}
					rLin += 1;
				}
				return "";	
			}
		});
	}
	catch(Exception e)
	{
		StringWriter errors = new StringWriter();
		e.printStackTrace(new PrintWriter(errors));
		msg = errors.toString();
		return msg;
	}
	return ret;	
}

public String CREATE(final String nome)
{
	String ret;
	try
	{
		ret = (String) AccessController.doPrivileged(new PrivilegedExceptionAction()
		{
			public Object run() throws Exception
			{
				File arq = new File(base + "/" + nome);
				boolean ret = arq.createNewFile();
				if(ret == true) return "true";
				return "false";
			}
		});
	}
	catch(Exception e)
	{
		StringWriter errors = new StringWriter();
		e.printStackTrace(new PrintWriter(errors));
		msg = errors.toString();
		return msg;
	}
	return ret;	
}	

public void paint(Graphics g)
{
	g.drawString(msg,20,20);
}

}
[/code]


import java.applet.*;
import java.security.*;
import com.sun.jna.Library;
import com.sun.jna.Native;
import java.io.*;
import java.awt.*;
import java.lang.reflect.Method;
import bemajava.*;


public class bemaFun extends Applet
{
	String msg;

	
	/**
	 *******************************************************************
	 * Funcao : init
	 * Descricao : equivale ao Main para um Applet
	 *******************************************************************/
	public void init()
	{
		//msg = System.getProperty ("java.library.path");
		msg = "222";
		//~ BemaInteger iEstado = new BemaInteger();
		//~ Integer ret = Bematech.VerificaEstadoGaveta(iEstado);
		
		//~ BemaString qq = new BemaString();
		//~ qq.buffer="                                                                                ";
		//~ Integer ret = Bematech.RetornoAliquotas(qq);
		
		
		BemaInteger ACK = new BemaInteger();
		BemaInteger ST1 = new BemaInteger();
		BemaInteger ST2 = new BemaInteger();
		Integer ret = Bematech.VerificaEstadoImpressora(ACK,ST1,ST2);
		msg = ACK.number + " " + ST1.number + " " + ST2.number;
		//msg = "aaa " + iEstado.number;
		//msg = "bbb " + qq.buffer;

		//msg = Integer.toString(pEstado.number);
	}

	/**
	 *******************************************************************
	 * Funcao : paint
	 * Descricao : funcao que desenha na tela, sera removida do Applet futuramente,
	 * permanesce para facilitar Debug se necessario
	 *******************************************************************/	
	public void paint(Graphics g)
	{
		g.drawString(msg,100,20);
	}

	
	/**
	 *******************************************************************
	 * Funcao : callFun
	 * Descricao : funcao auxiliar para chamar uma funcao da dll
	 *******************************************************************/
	public Object callFun(String funcao, Class[] proto, Object[] args)
	{
		try
		{
			Method met = Bematech.class.getMethod(funcao, proto);
			return execPriv(null, met, args);
		}
		catch (Exception e)
		{
			StringWriter errors = new StringWriter();
			e.printStackTrace(new PrintWriter(errors));
			msg = errors.toString();
			return 42;
		}
	}

	/**
	 *******************************************************************
	 * Funcao : execPriv
	 * Descricao : executa a funcao dentro de um contexto privilegiado,
	 * assim o browser permitirá a ação
	 *******************************************************************/
	public Object execPriv(final Object o, final Method m, final Object[] args) throws Exception
	{
		Object ret = (Object) AccessController.doPrivileged(new PrivilegedExceptionAction()
		{
			public Object run() throws Exception
			{
				return m.invoke(o, args);
			}
		});
		return ret;
	}
	
		/**
	 *******************************************************************
	 * Funcao : jInt
	 * Descricao : transforma byte array em inteiro e formata para passar
	 * por JSON
	 *******************************************************************/	
	public String jInt(int par)
	{
		return Integer.toString( par );
	}

	/**
	 *******************************************************************
	 * Funcao : jStr
	 * Descricao : transforma byte array em String Fixa e formata para
	 * passar por JSON
	 *******************************************************************/
	public String jStr(String par)
	{
		return "\""+par+"\"";
	}

	/**
	 *******************************************************************
	 * Funcao : json
	 * Descricao : recebe array de Strings e transforma em JSON
	 *******************************************************************/	
	public String json(String[] pars)
	{
		String eRet = "[";
		eRet += pars[0];
		for(int i=1;i<pars.length;i++)
		{
			eRet += "," + pars[i];
		}
		eRet += "]";
		return eRet;
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// CUPOM FISCAL
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
		
	public int AbreCupom(String CPF_CGC)
	{
		return (int) callFun("AbreCupom"
			,new Class[] {String.class}
			,new Object[] {CPF_CGC});
	}
	
	public int AumentaDescricaoItem(String descricao)
	{
		return (int) callFun("AumentaDescricaoItem"
			,new Class[] {String.class}
			,new Object[] {descricao});		
	}
	
	public int CancelaItemAnterior()
	{
		return (int) callFun("CancelaItemAnterior"
			,new Class[] {}
			,new Object[] {});	
	}
	
	public int CancelaItemGenerico(String numeroItem)
	{
		return (int) callFun("CancelaItemGenerico"
			,new Class[] {String.class}
			,new Object[] {numeroItem});		
	}	
	
	public int CancelaCupom()
	{
		return (int) callFun("CancelaCupom"
			,new Class[] {}
			,new Object[] {});
	}
	
	public int EfetuaFormaPagamento(String formaPagamento, String valorFormaPagamento)
	{
		return (int) callFun("EfetuaFormaPagamento"
			,new Class[] {String.class,String.class}
			,new Object[] {formaPagamento,valorFormaPagamento});		
	}
	
	public int EfetuaFormaPagamentoDescricaoForma(String formaPagamento, String valorFormaPagamento, String descricaoForma)
	{
		return (int) callFun("EfetuaFormaPagamentoDescricaoForma"
			,new Class[] {String.class,String.class,String.class}
			,new Object[] {formaPagamento,valorFormaPagamento,descricaoForma});		
	}
	
	public int EstornoFormasPagamento(String formaOrigem,String formaDestino,String valor)
	{
		return (int) callFun("EstornoFormasPagamento"
			,new Class[] {String.class,String.class,String.class}
			,new Object[] {formaOrigem,formaDestino,valor});		
	}
		
	public int FechaCupom(String formaPagamento,String acrescimoDesconto,String tipoAcrescimoDesconto
		,String valorAcrescimoDesconto,String valorPago,String mensagem)
	{
		return (int) callFun("FechaCupom"
			,new Class[] {String.class,String.class,String.class,String.class,String.class,String.class}
			,new Object[] {formaPagamento, acrescimoDesconto, tipoAcrescimoDesconto, valorAcrescimoDesconto, valorPago, mensagem});		
	}
	
	public int FechaCupomResumido(String formaPagamento,String mensagem)
	{
		return (int) callFun("FechaCupomResumido"
			,new Class[] {String.class, String.class}
			,new Object[] {formaPagamento, mensagem});		
	}
	public int EfetuaFormaPagamentoIndice(String indice,String valorFormaPagamento)
	{
		return (int) callFun("EfetuaFormaPagamentoIndice"
			,new Class[] {String.class, String.class}
			,new Object[] {indice, valorFormaPagamento});		
	}
	
	public int IniciaFechamentoCupom(String acrescimoDesconto,String tipoAcrescimoDesconto,String valorAcrescimoDesconto)
	{
		return (int) callFun("IniciaFechamentoCupom"
			,new Class[] {String.class,String.class,String.class}
			,new Object[] {acrescimoDesconto, tipoAcrescimoDesconto, valorAcrescimoDesconto});		
	}
	
	public int VendeItem(String codigo, String descricao, String aliquota,String tipoQuantidade
		,String cQuantidade, int iCasasDecimais, String cUnitario, String tipoDesconto,String desconto)
	{
		return (int) callFun("VendeItem"
			,new Class[] {String.class, String.class, String.class,String.class,String.class, int.class, String.class, String.class,String.class}
			,new Object[] {codigo, descricao, aliquota,tipoQuantidade, cQuantidade, iCasasDecimais, cUnitario, tipoDesconto, desconto});		
	}
	
	public int VendeItemDepartamento(String codigo,String descricao,String aliquota,String valorUnitario,String cQuantidade
		,String valorAcrescimo,String valorDesconto,String indiceDepartamento,String cUnidadeMedida)
	{
		return (int) callFun("VendeItemDepartamento"
			,new Class[] {String.class ,String.class ,String.class ,String.class ,String.class,String.class ,String.class ,String.class ,String.class}
			,new Object[] {codigo,descricao,aliquota,valorUnitario,cQuantidade,valorAcrescimo,valorDesconto,indiceDepartamento,cUnidadeMedida});		
	}
	
	public int TerminaFechamentoCupom(String mensagem)
	{
		return (int) callFun("TerminaFechamentoCupom"
			,new Class[] {String.class}
			,new Object[] {mensagem});		
	}
	
	public int UsaUnidadeMedida(String cUnidadeMedida)
	{
		return (int) callFun("UsaUnidadeMedida"
			,new Class[] {String.class}
			,new Object[] {cUnidadeMedida});		
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// RELATORIOS FISCAIS
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public int LeituraMemoriaFiscalData(String dataInicial, String dataFinal)
	{
		return (int) callFun("LeituraMemoriaFiscalData"
			,new Class[] {String.class,String.class}
			,new Object[] {dataInicial,dataFinal});
	}
	
	public int LeituraMemoriaFiscalReducao(String cReducaoInicial, String cReducaoFinal)
	{
		return (int) callFun("LeituraMemoriaFiscalReducao"
			,new Class[] {String.class,String.class}
			,new Object[] {cReducaoInicial,cReducaoFinal});
	}
	
	public int LeituraMemoriaFiscalSerialData(String dataInicial, String dataFinal)
	{
		return (int) callFun("LeituraMemoriaFiscalSerialData"
			,new Class[] {String.class,String.class}
			,new Object[] {dataInicial,dataFinal});
	}
	
	public int LeituraMemoriaFiscalSerialReducao(String cReducaoInicial, String cReducaoFinal)
	{
		return (int) callFun("LeituraMemoriaFiscalSerialReducao"
			,new Class[] {String.class,String.class}
			,new Object[] {cReducaoInicial,cReducaoFinal});
	}
	
	public int LeituraX()
	{
		return (int) callFun("LeituraX"
			,new Class[] {}
			,new Object[] {});
	}
	
	public int LeituraXSerial()
	{
		return (int) callFun("LeituraXSerial"
			,new Class[] {}
			,new Object[] {});
	}
	
	public int ReducaoZ(String data, String cHora)
	{
		return (int) callFun("ReducaoZ"
			,new Class[] {String.class,String.class}
			,new Object[] {data,cHora});
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// NAO FISCAL
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public int UsaComprovanteNaoFiscalVinculado(String texto)
	{
		return (int) callFun("UsaComprovanteNaoFiscalVinculado"
			,new Class[] {String.class}
			,new Object[] {texto});
	}
	
	public int FechaComprovanteNaoFiscalVinculado()
	{
		return (int) callFun("FechaComprovanteNaoFiscalVinculado"
			,new Class[] {}
			,new Object[] {});
	}

	public int FechaRelatorioGerencial()
	{
		return (int) callFun("FechaRelatorioGerencial"
			,new Class[] {}
			,new Object[] {});
	}

	public int RelatorioGerencial(String texto)
	{
		return (int) callFun("RelatorioGerencial"
			,new Class[] {String.class}
			,new Object[] {texto});
	}

	public int RecebimentoNaoFiscal(String indiceTotalizador, String valorRecebimento, String formaPagamento)
	{
		return (int) callFun("RecebimentoNaoFiscal"
			,new Class[] {String.class,String.class,String.class}
			,new Object[] {indiceTotalizador,valorRecebimento,formaPagamento});
	}

	public int Sangria(String valor)
	{
		return (int) callFun("Sangria"
			,new Class[] {String.class}
			,new Object[] {valor});
	}

	public int Suprimento(String valor, String formaPagamento)
	{
		return (int) callFun("Suprimento"
			,new Class[] {String.class,String.class}
			,new Object[] {valor,formaPagamento});
	}

	public int AbreComprovanteNaoFiscalVinculado(String formaPagamento,String valor,String numeroCupom)
	{
		return (int) callFun("AbreComprovanteNaoFiscalVinculado"
			,new Class[] {String.class,String.class,String.class}
			,new Object[] {formaPagamento,valor,numeroCupom});
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// INICIALIZACAO
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////	
	public int AlteraSimboloMoeda(String simboloMoeda)
	{
		return (int) callFun("AlteraSimboloMoeda"
			,new Class[] {String.class}
			,new Object[] {simboloMoeda});
	}
	
	public int EspacoEntreLinhas(int dots)
	{
		return (int) callFun("EspacoEntreLinhas"
			,new Class[] {int.class}
			,new Object[] {dots});
	}

	public int ForcaImpactoAgulhas(int iValorImpacto)
	{
		return (int) callFun("ForcaImpactoAgulhas"
			,new Class[] {int.class}
			,new Object[] {iValorImpacto});
	}

	public int LinhasEntreCupons(int linhas)
	{
		return (int) callFun("LinhasEntreCupons"
			,new Class[] {int.class}
			,new Object[] {linhas});
	}

	public int NomeiaDepartamento(int indice, String departamento)
	{
		return (int) callFun("NomeiaDepartamento"
			,new Class[] {int.class, String.class}
			,new Object[] {indice, departamento});
	}

	public int NomeiaTotalizadorNaoSujeitoIcms(int indice, String totalizador)
	{
		return (int) callFun("NomeiaTotalizadorNaoSujeitoIcms"
			,new Class[] {int.class, String.class}
			,new Object[] {indice, totalizador});
	}

	public int ProgramaAliquota(String aliquota, int vinculo)
	{
		return (int) callFun("ProgramaAliquota"
			,new Class[] {String.class, int.class}
			,new Object[] {aliquota, vinculo});
	}

	public int ProgramaArredondamento()
	{
		return (int) callFun("ProgramaArredondamento"
			,new Class[] {}
			,new Object[] {});
	}

	public int ProgramaTruncamento()
	{
		return (int) callFun("ProgramaTruncamento"
			,new Class[] {}
			,new Object[] {});
	}

	public int ProgramaHorarioVerao()
	{
		return (int) callFun("ProgramaHorarioVerao"
			,new Class[] {}
			,new Object[] {});
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// AUTENTICACAO
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public int ProgramaCaracterAutenticacao(String caracter)
	{
		return (int) callFun("ProgramaCaracterAutenticacao"
			,new Class[] {String.class}
			,new Object[] {caracter});
	}

	public int Autenticacao()
	{
		return (int) callFun("Autenticacao"
			,new Class[] {}
			,new Object[] {});
	}
		
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// GAVETA DE DINHEIRO
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public int AcionaGaveta()
	{
		return (int) callFun("AcionaGaveta"
			,new Class[] {}
			,new Object[] {});
	}
	
	public String VerificaEstadoGaveta()
	{
		BemaInteger pEstado = new BemaInteger();
		Integer ret = (int) callFun("VerificaEstadoGaveta"
			,new Class[]{BemaInteger.class}
			,new Object[]{pEstado});
		return json(new String[]{ jInt(ret) , jInt(pEstado.number) });
	}

	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// TEF
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public int IniciaModoTEF()
	{
		return (int) callFun("IniciaModoTEF"
			,new Class[] {}
			,new Object[] {});
	}

	public int UsaComprovanteNaoFiscalVinculadoTEF(String texto)
	{
		return (int) callFun("UsaComprovanteNaoFiscalVinculadoTEF"
			,new Class[] {String.class}
			,new Object[] {texto});
	}

	public int RelatorioGerencialTEF(String texto)
	{
		return (int) callFun("RelatorioGerencialTEF"
			,new Class[] {String.class}
			,new Object[] {texto});
	}

	public int FinalizaModoTEF()
	{
		return (int) callFun("FinalizaModoTEF"
			,new Class[] {}
			,new Object[] {});
	}
	
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// OUTRAS FUNCOES
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////	
	public int AberturaDoDia(String valorAux,String formaPagamento)
	{
		return (int) callFun("AberturaDoDia"
			,new Class[] {String.class,String.class}
			,new Object[] {valorAux,formaPagamento});
	}

	public int AbrePortaSerial()
	{
		return (int) callFun("AbrePortaSerial"
			,new Class[] {}
			,new Object[] {});
	}

	public int AbreBilhetePassagem(String imprimeValorFim,String imprimeEnfatizado,String embarque,String destino,String linha,String prefixo,String agente,String agencia,String data,String hora,String poltrona,String plataforma)
	{
		return (int) callFun("AbreBilhetePassagem"
			,new Class[] {String.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class,String.class}
			,new Object[] { imprimeValorFim, imprimeEnfatizado, embarque, destino, linha, prefixo, agente, agencia, data, hora, poltrona, plataforma});
	}

	public int FechamentoDoDia()
	{
		return (int) callFun("FechamentoDoDia"
			,new Class[] {}
			,new Object[] {});
	}

	public int FechaPortaSerial()
	{
		return (int) callFun("FechaPortaSerial"
			,new Class[] {}
			,new Object[] {});
	}

	public int ImpressaoCarne(String titulo, String cParcela, String datas,int iQuantidade, String texto,String cliente,String cRGCPF,String cupom,int iVias,int iAssina)
	{
		return (int) callFun("ImpressaoCarne"
			,new Class[] {String.class, String.class, String.class,int.class, String.class,String.class,String.class,String.class,int.class,int.class}
			,new Object[] { titulo,  cParcela,  datas, iQuantidade,  texto, cliente, cRGCPF, cupom, iVias, iAssina});
	}

	public int ImprimeConfiguracoesImpressora()
	{
		return (int) callFun("ImprimeConfiguracoesImpressora"
			,new Class[] {}
			,new Object[] {});
	}

	public int ImprimeDepartamentos()
	{
		return (int) callFun("ImprimeDepartamentos"
			,new Class[] {}
			,new Object[] {});
	}

	public int MapaResumo()
	{
		return (int) callFun("MapaResumo"
			,new Class[] {}
			,new Object[] {});
	}

	public int RelatorioTipo60Analitico()
	{
		return (int) callFun("RelatorioTipo60Analitico"
			,new Class[] {}
			,new Object[] {});
	}

	public int RelatorioTipo60Mestre()
	{
		return (int) callFun("RelatorioTipo60Mestre"
			,new Class[] {}
			,new Object[] {});
	}

	public int ResetaImpressora()
	{
		return (int) callFun("ResetaImpressora"
			,new Class[] {}
			,new Object[] {});
	}

	public int VerificaImpressoraLigada()
	{
		return (int) callFun("VerificaImpressoraLigada"
			,new Class[] {}
			,new Object[] {});
	}

	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	// INFORMACOES
	////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////////////
	public String RetornoAliquotas()
	{
		BemaString pAliquotas = new BemaString();
		Integer ret = (int) callFun("RetornoAliquotas"
			,new Class[] {BemaString.class}
			,new Object[] {pAliquotas});
		return json(new String[]{ jInt(ret) , jStr(pAliquotas.buffer) });		
	}
}

Se não me engano no IE tem que configurar para usar uma Java VM da Microsoft…

mas onde posso achar isso?

e por qual motivo? isso que mais me intriga kkk
a jvm nao ja resolve?

Isso não se consegue mais ser instalado no Windows desde o SP 2 do Windows XP, se não me engano.

Considere que a VM da Microsoft não pode ser usada no mundo real.

É que a Microsoft foi processada pela Sun e não pode deixar instalar aquele Java VM da Microsoft dentro do Windows - nenhuma versão do Windows deixa instalar isso mais.

O problema é outro. Acredito que como o JNA não está instalado dentro da JVM (diretórios java\jre6\bin para a DLL JNI que o JNA exige, e java\jre\lib\ext para o JAR do JNA),você está tendo um problema grave de classloading e JNI que não é trivial de ser resolvido sem fazer esse gato.
Esse problema aparece quando se refresca a página :frowning:

nao estou entendendo. pq no ff funciona. Creio que nao seja as dlls

O modelo de classloading do Firefox para plugins é um pouco diferente do IE, e é isso que dá esses problemas chatos. Eu lembro que no IE sempre tive de pegar essas bibliotecas nativas e instalar dentro do diretório da JRE que a applet estava usando, o que não é nada trivial.

[quote=entanglement]O modelo de classloading do Firefox para plugins é um pouco diferente do IE, e é isso que dá esses problemas chatos. Eu lembro que no IE sempre tive de pegar essas bibliotecas nativas e instalar dentro do diretório da JRE que a applet estava usando, o que não é nada trivial. [/quote] as dlls estao na maquina. Eu preciso colocar na system senao não funciona. Como posso fazer? pegar e mudar o endereço? se eu mudar o endereço nao vai afetar os outros browsers?

coloquei as dlls no arquivos de programas/java/jre7/din é isso?

Na verdade o que é mais importante é pôr o jar jre\lib\ext.

aeeeeeeeeeeeeeeeeeeeeeeeeeeee
VLW CARA!