faketime으로 jar를 실행하는 방법

faketime으로 jar를 실행하는 방법

jar테스트를 위해 시뮬레이션된 시간을 사용하여 특정 파일을 실행해야 합니다. 일반적인 방법으로 항아리를 실행할 때

$ java -jar myjar.jar  

완벽하게 작동합니다. 그러나 이를 실행하려고 하면 faketimejar를 실행하지 않고 중지되거나 커서가 깜박이면서 멈추고 실행된 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

관련 정보