|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 82
|
[JAVA] Chiudere Acrobat Reader
Salve a tutti.
con queste righe di codice creo un report in pdf : Codice:
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRTableModelDataSource((DefaultTableModel)Tabella.getModel()));
JasperExportManager.exportReportToPdfFile(jasperPrint, reportDest);
if (MostraPdf == 1) {
try {
Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + reportDest);
p.waitFor();
System.out.println("Done.");
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "!!!!!!");
}
}
L'ambiente IDE mi dice giustamente che il file è già utilizzato da un altro processo e mi segnala l'errore alla riga Codice:
JasperExportManager.exportReportToPdfFile(jasperPrint, reportDest); Grazie a tutti in ogni caso |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Io avvertirei l'utente, in modo che possa chiudere il file in questione,
non e' bello vedersi chiudere un programma da parte di un'altro
__________________
|Java Base| |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ma non dice che il file aperto in Acrobat è lo stesso generato da quello del report?
Immagino che quello che voglia fare lui, sia di chiudere il file aperto e riaprirlo per visualizzare la versione più aggiornata. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
se esegui quel processo in un thread puoi invocare i metodi interrupt() o destroy()
http://java.sun.com/j2se/1.3/docs/ap...tml#interrupt()
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 82
|
sì il file sarebbe lo stesso, ma la versione aggiornata.
Se non lo chiudo non mi viene aggiornato. Stavo pensando che potrei farmi una lista dei processi attivi e poi "ammazzare" Acrobat Reader ( magari prima avviso Per windows posso usare una Runtime al task manager, per Unix al comando ps e per il Mac? vabbè ora cerco.. intanto vi ringrazio! EDIT: mentre scrivevo ha risposto anche feboss: Feboss se distruggo un thread con quel codice all'interno sei sicuro che mi chiude anche l'Acrobat Reader? Ultima modifica di som : 13-05-2008 alle 12:25. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
E se l'utente ha aperto piu' documenti? se killi gli chiudi tutto.
Io avviserei, tipo una finestrella "Impossibile creare il file ... gia' in uso da parte del programma ..." e qui bisognerebbe trovare il programma che ha aperto il file es. con lsof
__________________
|Java Base| |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 82
|
Già lovaz hai ragione, abbandono la mia furia omicida
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:41.











|








