Bonsoir à tous,

Je suis en train de créer une applet Java dans laquelle je redirige les flux de sortie (les System.out.println et les System.err.println) dans un JTextArea. Pour faire bref, j'ai une classe JConsole qui hérite de JTextArea, et une classe ConsoleStream sous classe de PrintStream, le tout étant initialisé par un System.setOut(new ConsoleStream(System.out, jc)) jc étant un JConsole (idem pour System.err).

Cette méthode fonctionne correctement, elle a été testée et éprouvée dans 3 ou 4 applis client lourd qui tournent en prod depuis des années.

Seulement voilà, je n'arrive pas à l'appliquer dans une Applet. En dév sous Eclipse, l'exécution se déroule sans problème, mais une fois exporté en JAR, et exécuté depuis l'appel via une page HTML, j'ai un java.security.AccessControlException : access denied (java.lang.RuntimePermission setIO) sur mon System.setOut()...

Voici un extrait de mon code :

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

package toto;

[...]

public class MyApplet extends Applet implements ActionListener {
	
	[...]
	
	public void init() {
		
		[...]
    		JConsole jc = new JConsole();
    		System.setOut(new ConsoleStream(System.out, jc));
    		console.add("Console OUT", new JScrollPane(jc));
    		jc = new JConsole(Color.RED);
    		System.setErr(new ConsoleStream(System.err, jc));
    		console.add("Console ERR", new JScrollPane(jc));
    		
		this.add(console,BorderLayout.CENTER);
		[...]

	}
	
	[...]

}
Et ma déclaration d'Applet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
    <applet name="MyApplet" codebase="jar/" code="toto.MyApplet.class" 
        height="390px" width="520px" archive="plugin.jar">
    </applet>

En gras, la ligne sur laquelle j'ai mon Exception. Pour info, plugin.jar est le nom de mon JAR créé et il se trouve bien dans un sous répertoire "jar".

Plus sympa encore : si je mets mon System.setOut() et mon System.setErr() en commentaire, et que je regénère mon JAR, l'applet s'affiche correctement.

Quelqu'un a t-il une idée, car je sèche un peu