Elikkä java appletti toimii kyllä appletviewerillä ja selaimella omalta koneelta, mutta kun laitan sen nettiin, niin ei toimi.
Tällasta virhettä:
java.security.AccessControlException: access denied (java.io.FilePermission cursor.gif read) 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.checkRead(Unknown Source) at sun.awt.SunToolkit.getImageFromHash(Unknown Source) at sun.awt.SunToolkit.getImage(Unknown Source) at AmpumaTesti.init(AmpumaTesti.java:20) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Vaikuttas ton perusteella, että tohon cursor.gifiin ei olis oikeuksia :/
Mistä tämmönen vois johtua?
Java-appleteissahan on melko tiukat turvarajoitukset. Esimerkiksi asiakaskoneelle ei juurikaan voi suorittaa tiedostonkäsittelyä. Kääntäjästä/kehitysympäristöstä riippuen en pysty sanomaan onko appletViewerissä tämä otettu huomioon. AppletViewer antaa tallentaa tietoja omalle koneellesi sen samalla toimiessa palvelimena, mutta netin kautta tämä ei enää onnistukaan.
Itse olen myös törmännyt ongelmaan tosin eri yhteydessä.
Jos muu ei auta, niin kokeile pistää kuva jar-paketin sisään ja lataa se muistiin näin:
Image image = ImageIO.read(getClass().getClassLoader().getResourceAsStream("cursor.gif"));
Varmasti toimiva tapa ladata kuvia appletissa on käyttää Applet-luokan metodia getImage(URL url) tai getImage(URL url, String name). Eli käytännössä
Image cursorImage = getImage(getCodeBase(), "cursor.gif");
Sami kirjoitti:
Varmasti toimiva tapa ladata kuvia appletissa on käyttää Applet-luokan metodia getImage(URL url) tai getImage(URL url, String name). Eli käytännössä
Image cursorImage = getImage(getCodeBase(), "cursor.gif");
Kunhan muistaa, että appletti saa ottaa vakiona veppiyhteyksiä vain siihen hostiin josta sekin on ladattu.
Aihe on jo aika vanha, joten et voi enää vastata siihen.