Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Browser Fehler bei Applet: java.security.AccessControl.
Moin
Ich habe heute erneute mal das java sdk installiert, da es vorher nicht so richtig funktioniert hat. Aber seit dem, kriege ich immer einen Fehler, wenn ich ein Applet im Browser öffnen möchte:
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.1)
Woran kann das denn liegen ? Ich hab das Runtime Enviroment schon mal reinstalliert, hat aber nichts gebracht..
Du versuchst etwas zu machen das die die Sandbox in der Applets laufen verbietet.
dateioperationen zum Beispiel.
Wenn diese Operationen für dein Applet benötigt werden musst du es signieren.
Ok danke erstmal
Aber komisch ist, dass garkein Applet mehr geht. Weil das Applet hatte ich vorher schonmal ausprobiert, da ging es noch. Jetzt hab ich noch im Internet nach einem Applet gesucht, das ging auch nicht.
Du kannst mir ja vielleicht mal ein Link zu einem Applet geben, das auf jeden Fall gehen sollte, dann kann ich ja mal sehen, ob das geht, oder ob es doch irgentwie an etwas anderem liegt.
HM du hasst recht, es geht. komisch...
kannst du mir vll sagen, was falsch ist, wenn ich den vollständigen fehler zeige ?
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM.1)
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.checkExit(Unknown Source)
at java.lang.Runtime.exit(Unknown Source)
at java.lang.System.exit(Unknown Source)
at chatapplet.start(chatapplet.java:43)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
und hier ist noch der code vom applet:
Code:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
public class chatapplet extends Applet implements Runnable
{
public static final int PORT = 8765;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;
public void init()
{
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);
this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);
this.setBackground(Color.lightGray);
this.setForeground(Color.black);
inputfield.setBackground(Color.white);
outputarea.setBackground(Color.white);
}
public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
System.exit(1);
}
say("Verbindung zum Server aufgenommen...");
if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}
public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}
if ((thread !=null) && thread.isAlive())
{
thread.stop();
thread = null;
}
}
public void run()
{
String line;
try
{
while(true)
{
line = in.readLine();
if(line!=null)
outputarea.appendText(line+'\n' );
}
} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
}
public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String) e.arg;
out.println(inp);
inputfield.setText("");
return true;
}
return false;
}
public void say(String msg)
{
outputarea.appendText("*** "+msg+" ***\n");
}
}