|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[java] Aprire un file pdf appena creato
allora..io creo con itext un file e voglio che me lo apara automaticamente, ma non sò come farlo.
avevo pensato al Runtime.getRuntimeExec().exec(); però se linko il file non funge....ricordo che c'era la possibilità di passare un vettore di "file", ma non ricordo se era possibile stabilire "priorita..e poi sincerametne non sò come far aprire il reader di default del sistema.
__________________
My gaming placement |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
java.awt.Desktop.getDesktop().open(il file pdf)
A partire da Java 6. Prima di Java 6, puoi usare jdic. Anche dopo Java 6 volendo perchè il "Desktop" di Java 6 ha qualche bug di troppo ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
![]() e jdic come funzia ![]()
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
non mi funge....spiego la particolatrità del problema:
Codice:
java.awt.Desktop.getDesktop().open(new File(destinazione.getSelectedFile().getPath()+".pdf")); però non "finonzia!"
__________________
My gaming placement |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
ho provato anche così:
Codice:
File f=new File("video.AVI"); try { java.awt.Desktop.getDesktop().open(f); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
__________________
My gaming placement |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
prima del ban eri più buono :P :P :P a parte gli scherzi....il problema "persiste"....se volessi farlo su linux??? jdic??? perchè con il deskzozz non mi funziona? nemmeno eccezzioni lancia MALEDETTO!
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
jdic funziona come Desktop (in verità il Desktop di AWT è mutuato dal Desktop di jdic).
Se i file esiste e se esiste un'associazione con quel tipo di file allora il Desktop di jdic lo apre sicuramente. JDIC lo trovi qui https://jdic.dev.java.net/ Naturalmente sarebbe meglio tentare la strada java.awt.Desktop perchè in questo modo non hai librerie native da installare. Ma, come detto, il Desktop di java.awt sembra essere afflitto da qualche problema nell'aprire i file.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
![]()
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
kjdic non mi funge....e ora inizio a bestemmiare perchè non posso installare le librerie native (nei sistemi in cui andrò ad installare il software).
quindi MI SERVE il Desktop di awt....qualcuno ha capito come farlo funzionare??? devo aprire file pdf e file avi...sto addirittura pensando di aprirlo un un player fatto da me X_X mi serve All-Platform
__________________
My gaming placement |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova a controllare le eccezioni che saltano fuori quando usi Desktop. Usa un programma minimale, tipo:
Codice:
public class Open { public static void main(String[] args) throws Exception { java.awt.Desktop.getDesktop().open(new java.io.File(args[0])); } } ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
il fatto è questo...non dà eccezioni -.-
__________________
My gaming placement |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se non funziona e non da eccezioni allora non ti servono librerie alternative ma un esorcista
![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
OMG.....sto bestemmiando in 13 lingue diverse....come faccio a vedere se mi apre qualcosa di random???
__________________
My gaming placement |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ma a questo punto... mettere un bel breakpoint nella riga di codice che esegue la chiamata al metodo di Desktop e poi debug passo-passo, no?
Diamine, qualcosa deve pur succedere! ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Codice:
JFileChooser f = new JFileChooser(); f.showOpenDialog(null); File file = f.getSelectedFile(); try { java.awt.Desktop.getDesktop().open(file); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("pdl"); sto impazzendo
__________________
My gaming placement |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
ora provo anche quello...dimmi cosa vuoi sapere (l'ho già visto e non succede nulla di strano....breackato ad ogni passo!!!)
__________________
My gaming placement Ultima modifica di franksisca : 04-06-2009 alle 17:23. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Non è che usi un SO tipo Berlioz, Sfrangianella 1.5 o robe così?
A me funge perfettamente (Windows XP). Prova a vedere se Dektop.open è supportato con il metodo isSupported di Desktop. JDIC invece ti funziona?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
non è altro che un xp moddato (credo tu lo conosca) ovviamente nemmeno jdic mi funziona -.- ma credo sia un problema di librerie...non ho approfondito perchè non posso installare dll sui sistemi finali. System.out.println(Desktop.getDesktop().isSupported(Desktop.Action.OPEN)); ritorna true ovviametne!!!
__________________
My gaming placement Ultima modifica di franksisca : 04-06-2009 alle 17:29. |
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se non funziona neppure JDIC qualche problemino c'è. Bisognerebbe andare a pescare i codice sorgente della DLL di Desktop, vedere cosa fa e poi verificare se quello che fa effettivamente è in conflitto con qualche impostazione di IceXP. Ci sono tante variabili in gioco, non è detto che il problema sia lui.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
come faccio a far aprire automaticamente un file indipendentemente dal SO??? oppure come posso scansionarlo per sapere quale SO c'è sotto e usare quindi la chiamata adatta ? (tipo come la rundll32)
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:13.