我有一个用Java编写的系统。它与使用具有GPS接收器的rs485上的协议的另一个系统进行交换。所以我可以从java程序查询时间,另一个系统从GPS接收器返回当前时间。使用特殊时间戳我可以像SNTP一样计算传输延迟并设置系统时间。
问题是:从Java程序在Windows机器上设置系统时间的最简单方法是什么?
我有两个想法:
1)编写shell脚本,从java代码调用,使用DATE和TIME命令设置当前系统时间。我不喜欢的事情:两个命令用法和设置系统时间是一个打开UAC用户确认的管理程序;
2)实现时间提供者DLL(使用Microsoft doc reference中的API)。 Java程序将使用IPC或基于IP的传输使用简单协议与dll中的代码交换。因此,设置系统时间是w32tm服务的责任。但这个想法似乎太复杂了。
P.S。将来,在Linux计算机上部署的Java系统可能会出现这个问题。
有什么想法吗?