Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: java system.exit

t800 [18.01.2005 21:03:56]

#

class Kehys extends Frame
...
..
 public Kehys()
 {
 addWindowListener(this);
 }

    public void windowClosing(WindowEvent we)
    {
    System.exit(0);
    }

}

kun ohjelman sammuttaa X napista herjaa jvm seuraavaa:

Exception occurred during event dispatching:
java.security.AccessControlException: access denied (java.lang.RuntimePermission
 exitVM)
        at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:267)
        at java.security.AccessController.checkPermission(AccessController.java:
394)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:540)
        at java.lang.SecurityManager.checkExit(SecurityManager.java:760)
        at java.lang.Runtime.exit(Runtime.java:86)
        at java.lang.System.exit(System.java:696)
        at Kehys.windowClosing(notepati.java:61)
        at java.awt.Window.processWindowEvent(Window.java:809)
        at java.awt.Window.processEvent(Window.java:785)
        at java.awt.Component.dispatchEventImpl(Component.java:2588)
        at java.awt.Container.dispatchEventImpl(Container.java:1208)
        at java.awt.Window.dispatchEventImpl(Window.java:930)
        at java.awt.Component.dispatchEvent(Component.java:2492)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:126)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:93)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)

miten tuosta päästään eroon?

FooBat [18.01.2005 21:17:59]

#

lainaus:

exitVM

Halting of the Java Virtual Machine

This allows an attacker to mount a denial-of-service attack by automatically forcing the virtual machine to halt. Note: The "exitVM" permission is automatically granted to all code loaded from the application class path, thus enabling applications to terminate themselves.

Lataatko tuon Kehyksen koodin jotenkin dynaamisesti muualta kuin class path:ista?

t800 [18.01.2005 23:35:14]

#

public class notepati extends java.applet.Applet {
     Frame uusi;
     public void init()
     {
		Kehys uusi = new Kehys("Notepatti");
		uusi.setSize(350,250);  // usein pack()
		uusi.setVisible(true);
		uusi.show();
	}

tuossa on "loput" koodista ja kaikki ovat notepati.java tiedostossa..

koodin "testaan" applet viewerissä..

FooBat [19.01.2005 08:44:54]

#

Tämä selventää asiaa. Appletteja ei saa näköjään perustietoturva-asetuksilla sammuttaa System.exit() komennolla.

Näin ainakin väitetään tuossa
http://forum.java.sun.com/thread.jspa?threadID­=222481&messageID=779998

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta