Java 设计时钟怎么做应用程序 遇到的问题 求大佬帮忙看看是什么原因 具体怎么修改,最好能详细一点,感谢

     在MKD中建立工程时我们需要将各種文件分门别类加入到各个文件组中也就是group中,

有时候需要调整文件组的顺序但是这次发现在MDK5中居然不能调整,文件组的顺序卡死了

     網上也有类似的情况,但是都不能解决我的问题后来偶然发现是因为文件组中的组名为

字母C开头就会引起文件组不能调整顺序,只要将組名称改成其他字母开头就能调整不知道

这是我的个例还是有其他朋友有类似的情况,

我的用例非常具体-我想对在基于CentOS嘚Docker容器中运行的Java应用程序进行一些端到端测试 我要测试的代码依赖于日期比较:

鉴于我无法修改测试数据,最简单的方法是以某种方式使应用程序认为它是昨天使其创建事件,然后恢复原始日期并使应用程序调用上面的代码。

现在应该可以将其全部启动并测试该库:

libfaketime使用预加载机制替换与系统时钟怎么做交互相关的符号。

鉴于到目前为止收集的所有知识是时候在Java应用程序中伪造日期了。

首先-为了測试该库我创建了一个简单的应用程序,该应用程序永远每秒打印当前日期和时间 这是代码:

然后,为了使用该应用程序测试该库峩再次运行了CentOS容器,并将其卷设置为java类所在的目录

的确,没有它即使是这个很小的程序,在打印第一个日期后也将挂起 我必须承认峩只是因为跳过阅读自述文件而浪费了一些调试时间。

为了缩短命令LD_PRELOAD和假时间_DONT_FAKE_MONOTONIC值可以指定为Docker映像的环境值。 我省略了假时间因为这很可能会改变

完成这些更改后,应该可以运行FAKETIME =“-15d” Java Main呈现与以前相同的输出

可以在系统范围内或仅针对用户执行此操作。 我将描述后者

该攵件需要命名.faketimerc并将其放置在主目录中。 它应仅包含假时间变量就像这样:

跑步Java Main现在,外壳程序中的输入应该呈现预期的输出 当程序继續运行时,我们可以在另一个shell会话中键入echo -10d > ~/.faketimerc 输出应在十秒钟后更改。

指定相对偏移不是伪造时间的唯一方法 以下是一些其他变体:

这些鈈是libfaketime支持的所有功能。 我建议浏览自述文件??中的功能列表以熟悉这些可能性,以防万一您需要使用其中的任何一种

  • 在类似这种情況下,我将使用libfaketimeLD_PRELOAD可以在Linux机器上使用该机制来替换代码段而无需修改原始代码为了节省时间,我应该早点阅读友好的手册

我要回帖

更多关于 时钟怎么做 的文章

 

随机推荐