faketimeでjarを実行する方法

faketimeでjarを実行する方法

jarテストのためにシミュレートされた時間を使用して特定のファイルを実行する必要があります。一般的な方法で瓶を実行するとき

$ java -jar myjar.jar  

完璧に動作します。しかし、それを実行faketimeしようとすると、jarを実行せずに停止するか、カーソルが点滅して停止し、実行されたjarの適切なログまたはターミナル出力を取得できません。私は次のコマンドを試しましたfaketime

$ faketime '2015-10-10 17:28:00' /bin/java 'java -jar myjar.jar'
$ faketime '2015-10-10 17:28:00' /bin/java 'java -jar /full/path/to/myjar.jar'
$ faketime '2015-10-10 17:28:00' /bin/bash start.sh

最後のコマンドでは、次の単純なシェルスクリプトを使用しました。

#!bin/bash
java -jar myjar.jar

上記の方法のどれもjarを実行していません。ここで何が間違っているのか、どのように機能させるかを指摘してもらえますか?

  • jarとシェルスクリプトの両方が実行可能で、適切な権限があります。

答え1


これで、この問題は環境変数を設定することで解決されました。DONT_FAKE_MONOTONIC=1
このリンクから入るだけです https://github.com/wolfcw/libfaketime/issues/109

答え2

あなたが試していると仮定libfaketime...
そしてこれは読書の内容です:

  1. 互換性の問題
    ...
    • Java/JVM ベースのアプリケーションと複雑なランタイム環境を持つ他のアプリケーションは、libfaketime を安定して使用できない、または使用しないことが知られています。

Javaでは、次のものを使用できますhttps://github.com/arvindsv/faketime

関連情報