Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Avviare Processo Java

  1. #1

    Avviare Processo Java

    Ciao a tutti,
    ho un problema col seguente codice:

    Runtime rt = Runtime.getRuntime();
    final Process p = rt.exec("cmd.exe /c "+command);

    il comando che richiama una qualsiasi applicazione funziona, il problema è che io vorrei che questo processo ( ad es. notepad.exe di win ) si avviasse dopo un tot di secondi.

    Come posso fare?

    Grazie
    Believe in GOD, you could only have Benefits from him!!

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Avviare Processo Java

    Originariamente inviato da taurus82
    Runtime rt = Runtime.getRuntime();
    final Process p = rt.exec("cmd.exe /c "+command);

    il comando che richiama una qualsiasi applicazione funziona, il problema è che io vorrei che questo processo ( ad es. notepad.exe di win ) si avviasse dopo un tot di secondi.

    Come posso fare?
    Dipende quando e in che contesto fai la exec(). Potrebbe bastare fare una sleep prima della exec ma dipende dal contesto, perché potrebbe non essere appropriato. Se la tua è una applicazione grafica potresti usare un javax.swing.Timer.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Posto il codice per maggior chiarezza, dopo di che lo spiego:

    codice:
    package services.myClass;  
    
    import java.io.BufferedReader; 
    import java.io.IOException; 
    import java.io.InputStreamReader;
    
    public class Esegui{
    
    public int status=0;
    	public int execute(String command) {
    		int status_com=0;
    		try{
    			Runtime rt = Runtime.getRuntime();
    			final Process p = rt.exec("cmd.exe /c "+command);
    
    		//leggo tutto l'output del programma
    			new Thread(new Runnable() {
    		
    				public void run() {
    					try {
    						BufferedReader brin = new BufferedReader(new InputStreamReader(p.getInputStream()));
    						String buff = null;
    						while ((buff = brin.readLine()) != null) {
    							System.out.println(buff);
    							try {
    								Thread.sleep(10);
    							} catch(Exception e) {
    								;
    							}
    						}
    						brin.close();//finisco di leggere l'output e chiudo il thread.
    						//status=1;
    					} catch (IOException ioe) {
    							ioe.printStackTrace();
    						}
    				}
    			}).start(); 
    
    		//leggo tutto l'error stream del programma
    			new Thread(new Runnable() {
    	
    				public void run() {
    					try {
    						BufferedReader brerr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
    						String buff = null;
    						while ((buff = brerr.readLine()) != null) {
    							System.out.println(buff);
    							try {Thread.sleep(10);
    							}
    							catch(Exception e) {
    								
    							}
    						}
    						brerr.close();
    						} catch (IOException ioe) {
    							ioe.printStackTrace();
    						}
    				}
    			}).start();
    		
    		} catch (Exception e) {
    				e.printStackTrace();
    		}
    		return status_com;
    		
    }
    Trattasi di un applicazione web jsp.

    In poche parole sto utilizzando l'applet di vlc per mandare in streaming un video da una webcam. Il fatto è che questo video non viene salvato sul server dove risiede l'applicazione, ma nel computer di chi sta facendo streaming ( in effetti è giusto così perchè se l'applet viene eseguita su un altro computer non può interagire col server che contiene il programma ).

    Quindi mi è venuto in mente di far partire vlc dal server, al quale faccio salvare il file in una specifica locazione del server.( il file deve per forza di cosa risiedere sul server ).

    Vlc lo devo far partire per forza almeno 5 secondi dopo che inizio lo streaming con l'applet, in modo tale da fargli agganciare lo streaming e di conseguenza far salvare il file

    Posso lo stesso utilizzare la classe timer?
    Grazie a tutti e spero solo di essermi fatto capire.
    Believe in GOD, you could only have Benefits from him!!

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.