Bonjour à tous,

J'aurais voulu savoir si avec runtime.getRuntime.exec() on pouvait contrôler le process (stopper, redemarrer, contrôler l'état) ?

Comme avec les threads , en général je fais quelque chose comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
 
public class daemon{
 
	private static daemon currentInstance;
	private ScheduledExecutorService worker;
	private ScheduledFuture<?> workInProgress;
	private String directoryScan;
	private String directoryArchive;
	private String directoryModel;
	private String dateDeclencheur;
 
	private daemon() {
 
	}
 
	public static daemon getInstance(){
		if(null == currentInstance){
			currentInstance = new daemon();
		}
		return currentInstance;
	}
 
	public void setValues(String _directoryScan,String _directoryArchive,String _directoryModel,String _dateDeclencheur) {
		directoryScan = _directoryScan;
		directoryArchive = _directoryArchive;
		directoryModel = _directoryModel;
		dateDeclencheur = _dateDeclencheur;
	}
 
	public void run(){
		worker = Executors.newScheduledThreadPool(1);
		scanner CurrentScanne = new scanner(directoryScan,directoryArchive,directoryModel,dateDeclencheur);
        workInProgress = worker.scheduleAtFixedRate(CurrentScanne, 0, 3600, TimeUnit.SECONDS);
	}
 
	public boolean getStat(){
		if(workInProgress.isCancelled() || worker.isShutdown() || worker.isTerminated()){
			return false;	
		}else{
			return true;
		}		
	}
 
	public void cancel(){
		worker.shutdown();
	}
 
	public void restart(){
		worker.shutdown();
		run();
	}
 
}
bon la c'est exemple tiré d'un de mes programmes, mais le principe que j'aimerais appliqué est similaire à ça : pouvoir contrôler le soft lancer par exec et le stopper, le redémarrer, contrôler s'il est toujours actif ou non, lui passer de nouveau paramètres etc... Sans le soucis de périodicité comme avec le ScheduledExecutorService

Le but pour moi étant de lancer un VLC et de la contrôler via mon décodeur TV neuf.