Pessoal, desenvolvi um applet.
Ele acessa dll’s via JNA.
Eu assinei meu applet e alterei as configurações do arquivo .policy e funcionou perfeitamente.
Mas ainda tenho um problema com ele.
Eu preciso distribuir ele na net, então eu fiz um sisteminha de download das dll’s e assinei neu applet mas simplesmente não funciona.
Essa é minha mensagem de erro:
Exception in thread “Thread-9” java.lang.ExceptionInInitializerError
at com.se.serial.GageValue$2.run(GageValue.java:77)
at java.security.AccessController.doPrivileged(Native Method)
at com.se.serial.GageValue.run(GageValue.java:73)
at com.se.serial.Serial.getGageValue(Serial.java:299)
at com.se.serial.Serial$1.run(Serial.java:144)
at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.jnidispatch)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkLink(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.sun.jna.Native.(Native.java:86)
… 6 more
Meu applet tem 2 classes e uma interface.
o código que busca os valores da dll é o seguinte:
public void run() {
java.security.AccessController.doPrivileged(new java.security.PrivilegedAction(){
public Object run(){
returnStatus = 1;
try{
lib = (IntSerial) Native.loadLibrary("IntSerial", IntSerial.class);
status = false;
lib.setConfiguration(comPort, parity, baudRate, dataBits, stopBits, driver);
IntByReference retStatus = new IntByReference();
result = lib.getValue(gage, comPort, driver, remoteConnection, idAddress,retStatus);//[color=red][i][b]<--aqui ocorre o erro[/b][/i][/color] - linha 73
returnStatus = retStatus.getValue();
status = true;
}catch (Exception e) {
e.printStackTrace();
}
return null;
}
});
}
Gostaria muito de receber alguma ajuda. 