Newsgroup: it.comp.java
Titolo: messaggio di errore

Ciao a tutti,
ho un apparecchio (un multiplexer Scientific Atlanta D9600)
controllabile tramite interfaccia web. La versione di Java sul
computer che di solito utilizzo è una vecchia 1.4.2. Ho aggiornato
all'ultima versione 1.6.0_19-b04 ma il browser mi segnala un errore, e
sulla console Java appaiono i seguenti messaggi:
java.security.AccessControlException: access denied
(java.util.PropertyPermission java.home 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.checkPropertyAccess(Unknown
Source)
	at java.lang.System.getProperty(Unknown Source)
	at
com.sciatl.europe.BNDPDevice.Gui.TraceFileImplementor.a(Unknown
Source)
	at
com.sciatl.europe.BNDPDevice.Gui.TraceFileImplementor.<init>(Unknown
Source)
	at
com.sciatl.europe.Applets.Pegasus.PegasusApplet.init(Unknown Source)
	at
sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown
Source)
	at java.lang.Thread.run(Unknown Source)
Eccezione: java.security.AccessControlException: access denied
(java.util.PropertyPermission java.home read)
java.lang.NullPointerException
	at
com.sciatl.europe.Applets.Pegasus.PegasusApplet.start(Unknown Source)
	at
sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown
Source)
	at java.lang.Thread.run(Unknown Source)
Eccezione: java.lang.NullPointerException
cosa posso fare per risovere uil problema?
Vi ringrazio in anticipo per gli aiuti!!
Vic

il 02.04.2010 19.51, Scrive /victor621/@/
gmail.com/
 43503400:

Sembrerebbe che la classe 
com.sciatl.europe.BNDPDevice.Gui.TraceFileImplementor non abbia il 
permesso per leggere la java.home. Probabilmente se metti il jar nella 
directory jre\lib\ext (ovvero la directory di cui alla system property 
java.ext.dirs) funziona in vitu' del fatto che nel file 
jre\lib\security\java.policy c'e'
grant codeBase "file:${{java.ext.dirs}}/*" {
	permission java.security.AllPermission;
};
ma potresti equivalentemente aggiungere al file java.policy le 
permission richieste dal tuo jar, banalmente aggiungendo:
grant codeBase "file:///path/lib/tuojar.jar" {
	permission java.util.PropertyPermission "java.home", "read";
}
o in modo meno restrittivo:
grant codeBase "file:///path/lib/tuojar.jar" {
	permission java.security.AllPermission;
};
oppure in modo ancor meno restrittivo:
grant codeBase "file:///path/lib/*" {
	permission java.security.AllPermission;
};


<PARAM NAME = DEVICENAME VALUE = "D9600" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2">
</OBJECT>
</center>
grazie!


<PARAM NAME = DEVICENAME VALUE = "D9600" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.2">
</OBJECT>
</center>
grazie!
vic



Ciao, si tratta dunque di un'applet. Se vuoi che la tua applet acceda
ad elementi che per default sono esterni alla sandbox (ovvero
l'ambiente ristretto in cui vengono eseguite le applet, che di fatto
protegge la macchina da operazioni potenzialmente pericolose), devi
firmarla con il tool jarsigner, fornito con il jdk.
Qui trovi tutte le indicazioni del caso:
http://java.sun.com/javase/6/docs/technotes/tools/windows/jarsigner.html
http://java.sun.com/security/seccodeguide.html
http://java.sun.com/docs/books/tutorial/deployment/jar/signing.html
Ciao
Daniele

 Il codice della pagina è il seguente:
