如何确定 Java 应用程序的最低 JRE 版本和系统要求

我已经使用Eclipse IDE用Java编写了一个应用程序,现在我需要知道运行该应用程序所需的最低JRE版本!我知道某些方法仅在后来的JRE下可用,但我想知道找出应用程序最高要求的最简单方法是什么,因此任何建议都将不胜感激...

此外,虽然我正在讨论需求主题,但我很感激任何建议或方法来确定我的软件的最低系统要求 - 即最小RAM量...

提前致谢


答案 1
  • 方法 1:对于最小的JRE版本,这将是艰难的。最简单的方法是简单地要求与您正在构建的相同版本或更高版本,例如JRE 6.x.x或更高版本。
  • 方法 2:安装多个 JDK,使它们在 Eclipse 中可用,只需更改您正在构建的版本,每次运行应用程序的测试套件,并确保它们全部通过。允许所有测试通过的 JDK 的最早版本是它可以运行的最低 JRE。仅仅成功编译你的应用是不够的,因为以前版本的 JRE/JDK 可能有允许成功编译的错误,但不允许正确的程序执行。
  • 方法 3:客户端始终需要最新版本,因为Oracle不断修补安全漏洞,最终,如果您具有这种控制权,最好在客户端要求最新版本。

就RAM而言,这很容易。当JVM启动时,它会设置一个“最大”RAM量(我相信默认值可能是128MB),这是一个硬性限制,您的应用程序不能在不崩溃的情况下超过。随着时间的推移,分析你的应用程序,调整JVM上的内存设置,并找出你的应用程序运行所需的最小RAM量是多少(a)具有可接受的性能,以及(b)不抛出一个OutOfMemoryError,你就完成了。

参考:如何配置 JVM 选项和内存?

对于其他要求,例如CPU需求,事情会变得更加模糊。市面上有很多 CPU,给定系统产生的吞吐量不仅会根据 CPU 速度而变化,还会根据硬盘驱动器的速度、系统中安装的 RAM 量、网络接口的速度(如果您正在编写网络应用)等因素而变化。对于这样的要求,你只需要在各种系统上测试它,然后在某个地方画一条线,然后说,“如果你有至少和X,Y,Z一样强大的硬件,你可以期望可接受的性能”。

您可以做的另一件事是构建基准测试或某种性能日志记录,并将该性能数据发送回给您。许多应用程序都这样做。您知道“我们可以将匿名使用数据发送回母舰吗?”您在安装某些软件时遇到的问题吗?好吧,这些数据中常见的是特定于系统的详细信息,例如RAM,CPU,硬盘驱动器型号和其他硬件详细信息(您确定与应用程序相关的任何数据),以及性能日志记录数据。通过采用这种方法,您可以获得来自许多不同系统配置的大量性能数据,而无需在内部拥有大量不同配置的机器。

您可以对程序崩溃和错误执行相同的操作 - 将堆栈跟踪,系统信息和其他相关数据转储到发送回给您的日志文件中 - 但当然,前提是您的用户已经说过可以将该数据发送回给您。


答案 2

推荐