Salve,

qualche tempo fa ho terminato col mio gruppo un programma che, fra le tante cose, era in grado di aprire i file .pdf con la "documentazione" per il prof (no javadoc eh... ma si era capito) tramite pressione di un pulsante.
La parte di codice che si occupa di questo è la seguente:

codice:
if(ae.getSource() == itemHelp) 
{ InputStream pdf=(ClassLoader.getSystemResourceAsStream("progettobd2011/documentazione/guidaProgettoBD2011.pdf")); 
//System.out.println(Desktop.isDesktopSupported()); 
File temp; 
try 
{ temp = File.createTempFile("man1", ".pdf");
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(temp)); 
byte[] buf = new byte[1024]; 
int len; 
while ((len = pdf.read(buf)) != -1) 
{ 
   out.write(buf, 0, len);
 } 
Desktop.getDesktop().open(temp);
 pdf.close();
 out.close();
 } 
catch (IOException ex) { Logger.getLogger(FinestraPrincipale.class.getName()).log(Level.SEVERE, null, ex); 
}
Tutto ha funzionato alla grandissima su ogni pc e sistema operativo... fino ad oggi: da poco ho cambiato il mio pc, SO: Win 7 a 64 bit e, come per magia, il suddetto pezzo di programma non da il risultato voluto ma questo simpaticissimo errore:

codice:
ott 05, 2011 1:33:46 AM progettobd2011.FinestraPrincipale actionPerformed Grave: null java.io.IOException: Failed to open file:/C:/Windows/TEMP/man11158211959691807431.pdf. Error message: Accesso negato. 
at sun.awt.windows.WDesktopPeer.ShellExecute(WDesktopPeer.java:77)
at sun.awt.windows.WDesktopPeer.open(WDesktopPeer.java:54) 
at java.awt.Desktop.open(Desktop.java:272) 
at progettobd2011.FinestraPrincipale.actionPerformed(FinestraPrincipale.java:319) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.AbstractButton.doClick(AbstractButton.java:376) 
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) 
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) 
at java.awt.Component.processMouseEvent(Component.java:6504) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6269) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4860) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4686) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2713) 
at java.awt.Component.dispatchEvent(Component.java:4686) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) 
at java.awt.EventQueue.access$000(EventQueue.java:101) 
at java.awt.EventQueue$3.run(EventQueue.java:666) 
at java.awt.EventQueue$3.run(EventQueue.java:664) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:680) 
at java.awt.EventQueue$4.run(EventQueue.java:678) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Spero che possiate davvero spiegarmi cosa diavolo sta succedendo, perchè proprio non ne ho idea.

PS. Se qualcuno pensasse a diritti dell'utente su file o cartella di destinazione del file temporaneo che vado a creare sono tutti impostati correttamente.
Inoltre se vado nella cartella TEMP del sistema il file temporaneo è creato, ma non si apre neanche con doppio clic (il sistema dice che è corrotto ).

Grazie in anticipo per ogni dritta.