当前位置: 首页 > 知识库问答 >
问题:

如何获得Java应用程序而不是JVM的正常运行时间

龙飞文
2023-03-14

管理工厂。getRuntimeMXBean()。getUptime()只返回Java应用程序运行的JVM的正常运行时间。但这并不是Java应用程序的正常运行时间。Java应用程序可以是在同一个JVM进程中运行的几个应用程序之一,也可以在JVM启动后的X个时间段内启动。

是否提供了获取Java应用程序正常运行时间的功能?

共有1个答案

莘康裕
2023-03-14

我不知道Java有这样的功能。

您可以轻松地编写自己的此类功能来跟踪经过的时间。

从UTC以零小时-分钟-秒的偏移量捕获当前时刻。

Instant then = Instant.now() ;

检查经过的时间时,再次捕获当前时刻。

Instant now = Instant.now() ;

计算经过时间。

Duration d = Duration.between( then , now ) ;

生成标准ISO 8601格式的文本。

String output = d.toString() ;

您可以通过编写自己的MBean通过JMX使其可用。

 类似资料:
  • 问题内容: 我已经用Java编写了一个应用程序,并且想添加一个功能来报告该应用程序的正常运行时间。JVM中是否有可以执行此操作的类/方法? 我应该在应用程序启动时保存时间戳,然后在请求时计算与当前正常运行时间的差额吗? 用Java检索应用程序正常运行时间的更好方法是什么? 问题答案: 您可以使用RuntimeMXBean.getUptime()

  • 问题内容: 在Java中获得UNIX正常运行时间的最佳方法是什么?我是否可以使用标准的Java库/函数,还是应该使用运行时的exec或ProcessBuilder执行“正常运行时间”?谢谢 问题答案: 您可以阅读: 从维基百科: 显示自上次重新启动以来系统已开启多长时间: 第一个数字是系统启动的 总秒数 。第二个数字是机器空闲的时间(以秒为单位)。

  • 当我试图从应用程序中获取这个变量时: 我得到零。 如何在应用程序中正确获取VM选项? 但是==null。

  • 我有一个java应用程序(不是web),它定期在文件系统和控制台上记录数据。该应用程序构建于Java中,并使用log4j-1.2.17.jar进行日志记录。 我已经将java应用程序配置为将日志数据发送到Azure的application insights资源。 当我在非调试模式下执行代码时,应用程序无法将日志数据发送到azure Portal。请让我知道我缺少了什么,以便应用程序开始以正常模式(

  • 问题内容: 我正在研究非常庞大的基于Java Web的应用程序。由于在开发过程中没有完成正确的日志记录,因此我很难设置断点并调试应用程序,因为我不知道执行顺序。在执行一些操作之后,是否有任何机制可以获取正在运行的Java应用程序的完整调用堆栈。 我在网上搜索了很长时间,但无法找到具体的解决方案。如果有东西请给我建议。谢谢 问题答案: 方法1:从命令行使用Jstack实用程序(JDK发行版的一部分)

  • 我正在运行一个spring boot WebFlux应用程序,通常该应用程序运行在Netty嵌入式服务器之上。相反,我正在运行一个tomcat实例,我试图从我的pom中排除tomcat,但仍然遇到同样的问题。 所以我想通过运行Netty而不是Tomcat来解决这个问题。 这是我的pom依赖项: