爲了測試設置爲過去或未來日期/時間的java代碼,我想嘗試libfaketime(目前我們只是調整系統時鐘,但它會導致非常麻煩,如非工作Kerberos等)。RHEL 5/RHEL 6上的libfaketime和java
我嘗試用這個小測試程序:
$ cat time.java
import java.util.*;
class TimeTest {
public static void main(String[] s) {
long timeInMillis = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeInMillis);
java.util.Date date = cal.getTime();
System.out.println("Date: " + date);
}
}
並執行這樣的:
LD_ASSUME_KERNEL=2.6.18 LD_PRELOAD=/usr/lib64/libfaketime.so.1 FAKETIME="-15d" /opt/IBM/WebSphere/AppServer/java_1.7_64/bin/java TimeTest
Invalid clock_id for clock_gettime: -172402[[email protected] ~]#
但你可以看到我剛剛得到一個錯誤信息。 該測試在RHEL 6.5服務器上執行,內核爲2.6.32-431和 libfaketime 0.9.6
您有什麼建議可以解決這個問題嗎?我也有興趣聽到您在RHEL上使用libfaketime和java的經驗。
我也報告這個問題在:https://github.com/wolfcw/libfaketime/issues
最佳reagards,
的Erling