A
Andrew Thompson
System.out/err cannot be redirected in a sandboxed**
application(/applet).
Assuming you wanted to to show the end user the
System.out/System.err from a *sandboxed* app.*, how
would you go about collecting the information?
* Note - I am looking at launching apps. written by other
people, so I need to intercept/duplicate the normal
System.out/err they might use. The GUI might be
invoked by a 'full trust' app. - then the task is easy,
*but otherwise,* is there a (sandboxed) way to intercept
those streams?
**This (sandboxed) Applet is not allowed to set the
output stream..
<sscce>
import java.applet.Applet;
import java.awt.Label;
import java.io.PrintStream;
import java.io.ByteArrayOutputStream;
public class RedirectOutputInApplet extends Applet {
public void init() {
try {
PrintStream ps = new PrintStream(
new ByteArrayOutputStream());
System.setOut(ps);
} catch(Throwable t) {
add(new Label(t.getMessage()) );
}
}
}
</sscce>
application(/applet).
Assuming you wanted to to show the end user the
System.out/System.err from a *sandboxed* app.*, how
would you go about collecting the information?
* Note - I am looking at launching apps. written by other
people, so I need to intercept/duplicate the normal
System.out/err they might use. The GUI might be
invoked by a 'full trust' app. - then the task is easy,
*but otherwise,* is there a (sandboxed) way to intercept
those streams?
**This (sandboxed) Applet is not allowed to set the
output stream..
<sscce>
import java.applet.Applet;
import java.awt.Label;
import java.io.PrintStream;
import java.io.ByteArrayOutputStream;
public class RedirectOutputInApplet extends Applet {
public void init() {
try {
PrintStream ps = new PrintStream(
new ByteArrayOutputStream());
System.setOut(ps);
} catch(Throwable t) {
add(new Label(t.getMessage()) );
}
}
}
</sscce>