@@ -70,8 +70,9 @@ documentation whether it can be achieved by using libfaketime directly.
7070 intercept by removing the -DPTHREAD_SINGLETHREADED_TIME from the Makefile and
7171 rebuilding libfaketimeMT.so.1
7272
73- * Java-/JVM-based applications and others with a complex run-time environment
74- are known to not, or not reliably, work with libfaketime.
73+ * Java-/JVM-based applications work but you need to pass in an extra argument
74+ (DONT_FAKE_MONOTONIC). See usage basics below for details. Without this
75+ argument the java command usually hangs.
7576
7677* libfaketime will eventually be bypassed by applications that dynamically load
7778 system libraries, such as librt, explicitly themselves instead of relying on
@@ -139,6 +140,12 @@ Tue Nov 23 12:01:05 CEST 2016
139140user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
140141Mon Nov 8 12:01:12 CEST 2016
141142
143+ user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d"
144+ DONT_FAKE_MONOTONIC=1 java -version
145+ java version "1.8.0_111"
146+ Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
147+ Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
148+
142149The basic way of running any command/program with libfaketime enabled is to
143150make sure the environment variable LD_PRELOAD contains the path and
144151filename of the libfaketime library. This can either be done by setting it once
0 commit comments