Bonjour,
je voudrais utiliser un applet java qui utilise la librairire RXTXComm. Cette librairie s'appuie sur un dll pour acceder aux ports COM. J'ai deja consulté sans succès le message http://www.developpez.net/forums/d12...tion-probleme/.
Voici mon installation :
  • Certificat genéré : keytool -genkey -keystore myKeyStore -alias me
    keytool -selfcert -keystore myKeyStore -alias me
  • RXTXComm.jar est signé avec le certificat, et est placé dans jre/lib/ext
    jarsigner -keystore d:\workspace\myKeyStore RXTXComm.jar me
  • la dll est placée dans jre/bin
  • l'applet est signé avec le certificat
    jarsigner -keystore d:\workspace\myKeyStore applet.jar me
  • Eclipse lance l'applet sans erreur.
  • appletviewer genere l'erreur : Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "loadLibrary.rxtxSerial")
  • Je ne veux pas toucher aux fichiers policy de java.


Traceback de l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
D:\workspace>appletviewer test.html
Refresh serial port list
Refreshing serial port list...
java.lang.ExceptionInInitializerError thrown while loading gnu.io.RXTXCommDriver
 
java.lang.ExceptionInInitializerError
        at Instrument$1.run(Instrument.java:135)
        at Instrument$1.run(Instrument.java:1)
        at java.security.AccessController.doPrivileged(Native Method)
        at Instrument.refreshSerialPortList(Instrument.java:133)
        at Instrument.initInstrument(Instrument.java:65)
        at Instrument.<init>(Instrument.java:40)
        at Tanita.<init>(Tanita.java:8)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
        at java.lang.Class.newInstance0(Class.java:374)
        at java.lang.Class.newInstance(Class.java:327)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:793)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:722)
        at sun.applet.AppletPanel.run(AppletPanel.java:379)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.AccessControlException: access denied ("java.lang.Runti
mePermission" "loadLibrary.rxtxSerial")
        at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:366)
        at java.security.AccessController.checkPermission(AccessController.java:
560)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.SecurityManager.checkLink(SecurityManager.java:835)
        at java.lang.Runtime.loadLibrary0(Runtime.java:839)
        at java.lang.System.loadLibrary(System.java:1084)
        at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
        ... 17 more
Code qui génère l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Enumeration<CommPortIdentifier> portEnum = 
		AccessController.doPrivileged(new PrivilegedAction<Enumeration<CommPortIdentifier>>() {
	public Enumeration<CommPortIdentifier> run() {
		return CommPortIdentifier.getPortIdentifiers();
	}
});
Merci pour vos avis éclairés.
Z.