|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
[java] eseguire un programma che apra un pdf o un file html
in un lavoro che devo consegnare x l'uni c'è un punto dove chiede di inserire un menù di aiuto. Ora visto che il lavoro in questione è il gioco di pacman, nn ho la minima idea di cosa inserire in sto menù di aiuto, così mi è venuto in mente di creare un item che mi apre la relazione che farò a lavoro ultimato. Ora la relazione sarà un file pdf, ma volendo posso facilmente farla anche in html...
C'è un modo tale x cui cliccando su questo item mi apra sto pdf o html usando i programmi predefiniti dal sistema operativo? (il mio pacman deve girare sia su linux che su win) Grazie mille |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
In Java 6 puoi usare:
java.awt.Desktop.getDesktop().open(file); dove file è il percorso del file che vuoi aprire con l'applicazione predefinita di sistema. Per versioni precedenti alla 6 puoi usare JDIC: https://jdic.dev.java.net/ Il java.awt.Desktop di Java 6 è lo org.jdesktop.jdic.desktop.Desktop di JDIC.
__________________
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: Nov 2005
Messaggi: 5206
|
Quote:
Altrimenti puoi usare il metodo exec della classe Runtime: Codice:
Runtime rt = Runtime.getRuntime ();
Process proc = rt.exec (new String[] { "cmd", "/C", "start", "tuo-documento.pdf" });
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
mm, purtroppo st'affare deve essere multipiattaforma, quindi escluderei le soluzioni che funzionano solo sotto windows..
Per quanto riguarda Java 6 che già integra il metodo di apertura file ottengo questo errore: Codice:
# # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0093ce69, pid=1988, tid=1500 # # Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode, sharing) # Problematic frame: # v ~RuntimeStub::resolve_opt_virtual_call # # An error report file with more information is saved as hs_err_pid1988.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # Java Result: 1 BUILD SUCCESSFUL (total time: 3 seconds) Non esistono altre soluzioni x versioni precedenti della jvm, o qualcuno sa dirmi a cosa è dovuto il mio errore? (x PGI-bis, preferirei non usare l'altro metodo che mi hai consigliato, in quanto non penso che il mio prof si metta a scaricare una nuova libreria solo per me..) Grazie Ultima modifica di ceccoggi : 19-02-2007 alle 14:54. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Controlla il percorso del file che stai cercando di aprire e verifica che esista un'associazione per quel tipo di file.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
Si si , ma esiste un associazione su quel file, è un normale pdf che sotto win apro con foxit reader... e cliccando sulla voce del menu relativa mi apre il file benissimo con foxit reader...solo mi chiude il programma principale (ossia pacman)
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Visto che uso anche io Foxit Reader ho fatto una prova. Niente crash (AMD64 3200). E' possibile che sia un bug della JVM o del parte nativa di Desktop. Devi fare un paio di esperimenti.
1. Apri un file che non sia un PDF e vedi se crasha. 2. Scarica JDIC e prova a usare quello per aprire il file PDF. L'alternativa è fare come dice Andbin. Apri "a mano". Per farlo devi andare nel forum SO Alternativi e chiedere quale sia il comando per aprire un file con l'applicazione predefinita. Crei poi una classe che legge la stringa restituita da System.getProperty("os.name") e secondo il valore che ha sceglie un comando o l'altro.
__________________
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: Sep 2001
Messaggi: 1551
|
non saprei cosa succede a sto punto...se ti passassi via mail il pacchetto jar e vedi se da lo stesso errore sulla tua jvm? Purtroppo non ho altri pc sul quale provarlo e non ho trovato notizie in merito su google..
se sei d'accordo, passami il tuo indirizzo email via pvt.. Grazie |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2001
Messaggi: 1551
|
pgi, you've got a mail
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:08.




















