Bonsoir,
Sur un équipement qui ne possède pas d'horloge sauvegardée, je dois mettre l'heure système à jour en faisant une requête vers un serveur ntp.
Si je récupère bien l'heure sur le serveur, le code java qui fait un appel système pour la mise àl' heure n'a aucun effet .
Par contre directement sur le système Linux, la commande fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 long serverTime = message.getTransmitTimeStamp().getTime(); System.out.println("Time long (millisecondes) = "+ serverTime); long temps = serverTime/1000; // conversion en secondes pour la commande système String[] cmd = {"su","mypasswd","date","--set=@'" + temps + "'"}; Runtime runtime = Runtime.getRuntime(); runtime.exec(cmd); System.out.println("serveur ntp secondes = " + temps); // heure serveur ntp Date date = new Date(serverTime); ntpDateTime = sdf.format(date); System.out.println("Time from NTP = "+ ntpDateTime); // heure système date = new Date(); System.out.println("Heure système = "+ sdf.format(date));
Donc l'éxécution et la mise à l'heure manuelle :
Le problème doit sans doute se trouver à l'interface avec le système, mais je ne sais trop à quel endroit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 hubert@ubuntu:~$ /opt/jdk1.7.0_60/bin/java -jar horloge.jar Time long (millisecondes) = 1484086394888 serveur ntp secondes = 1484086394 Time from NTP = 10/01/2017 23:13:14 Heure système = 08/01/2017 20:49:42 hubert@ubuntu:~$ su Password: root@ubuntu:/home/hubert# date --set='@1484086394' Tue Jan 10 23:13:14 CET 2017 root@ubuntu:/home/hubert# date Tue Jan 10 23:13:19 CET 2017
Les suggestions sont les bienvenues.
Partager