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 qui génère 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
Merci pour vos avis éclairés.
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(); } });
Z.
Partager