Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA]Lanciare applicazioni esterne da programma Java

    Salve a tutti.
    Apro questo topic per chiedervi aiuto su come invocare dei programmi esterni (.exe per intenderci) da Java.

    questo è il mio codice inerente all'invocazione di un .exe:
    codice:
    private void shutdown(){
            try {
                Runtime.getRuntime().exec("spegni.exe");
            } catch (IOException ex) {
                Logger.getLogger(Progress.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    dove "spegni.exe" è il seguente file batch:
    codice:
    shutdown -s -f -t 0
    trasformato in .exe con bat2exe converter 1.5.1

    la gerarchia delle cartelle è la seguente (non so se possa servire):
    • Nome Progetto
    • build
    • dist
    • nbproject
    • src
    • altri file tra cui anche spegni.exe

    Altrimenti, sarebbe possibile eseguire quel comando senza usare il file .exe? Sinceramente preferirei questa seconda opzione se fosse possibile.

    Vi ringrazio per l'aiuto.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    ti ringrazio, ma ho risolto semplicemente invocando lo shutdown.exe di windows.
    ora ho un altro problema: devo far visualizzare un'immagine in una JDialog per un tot di secondi.

    ecco il codice completo:
    codice:
    package src;
    
    import java.awt.Dimension;
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.ImageIcon;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JProgressBar;
    import javax.swing.SwingWorker;
    
    /**
     *
     * @author Naruto 92
     */
    public class Progress extends SwingWorker<Void, Void>{
        
        private JProgressBar progress;
        private JFrame frame;
        
        public Progress(JProgressBar prog, JFrame win){
            progress=prog;
            progress.setVisible(true);
            progress.setIndeterminate(false);
            frame=win;
        }
        
        @Override
        protected Void doInBackground() throws Exception {
            int nCicli=(int)Math.round(Math.random()*100);
            for(int i=0; i<nCicli; i++){
                this.setProgress(i+1);
                Thread.sleep(Math.round(Math.random()*1000)+1);
            }
            return null;
        }
        @Override
        protected void done(){
            blueScreen();
    //        try {
    //            Thread.sleep(5000);
    //        } catch (InterruptedException ex) {
    //            Logger.getLogger(Progress.class.getName()).log(Level.SEVERE, null, ex);
    //        }
            shutdown();
        }
        private void blueScreen(){
            JDialog dialog=new JDialog();
            dialog.setUndecorated(true);
            Toolkit tk=Toolkit.getDefaultToolkit();
            Dimension screen=tk.getScreenSize();
            dialog.setSize(screen);
            Image i=tk.getImage("blue.jpg").getScaledInstance((int)screen.getWidth(), (int)screen.getHeight(), Image.SCALE_DEFAULT);
            dialog.add(new JLabel(new ImageIcon(i)));
            dialog.setAlwaysOnTop(true);
            dialog.setVisible(true);
            frame.dispose();
        }
        private void shutdown(){
            try {
                Runtime.getRuntime().exec("shutdown.exe -s -f -t 0");
            } catch (IOException ex) {
                Logger.getLogger(Progress.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    da come potete vedere, nel metodo "blueScreen" creo una JDialog e, al suo interno, vi inserisco l'immagine "blue.jpg".
    ora, dovrei far visualizzare la finestra, e quindi l'immagine, per 5 secondi e poi invocare lo "shutdown". l'immagine viene visualizzata, ma solo per una frazione di secondo, mentre io vorrei che venisse visualizzata per 5 secondi.
    ho provato con lo sleep, ma non ho ottenuto niente.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    [OT]Dovresti creare una nuova discussione con un titolo specifico per il tuo nuovo problema...[/OT]
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Originariamente inviato da Pastore12
    [OT]Dovresti creare una nuova discussione con un titolo specifico per il tuo nuovo problema...[/OT]
    Esatto. Nuovo problema, nuova discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.