2011-12-03 57 views
14

我已经使用Eclipse IDE编写了Java应用程序,现在我需要知道运行该应用程序所需的最低JRE版本!我知道某些方法只适用于以后的JRE,但我想知道最简单的方法来找出我的应用程序的最高要求是什么,所以任何建议,将不胜感激...如何确定我的Java应用程序的最低JRE版本和系统要求

同时,当我在需求的话题,我将不胜感激任何意见或决定为我的软件一般最低系统要求的方法 - 即RAM最低金额...

在此先感谢

+3

你知道工程师如何弄清楚一座桥可承受多少重量?他们驾驶的越来越重的卡车,直到它崩溃,然后他们重建它。做相反的事情......用JDK 7开始编译你的应用程序,并使用早期的JDK直到它不能编译。与记忆一样...使用越来越少,直到它断裂。是的,半tongue :) :) – Paul

+2

单靠编译是不够的 - 我几乎也给出了这个答案。因为以前版本的JDK/JRE可能包含大部分时间不使用的版本中的错误,所以编译并不能保证程序正确执行。您真的需要它来(1)编译和(2)让您的整个测试套件针对给定的JRE传递。如果你没有测试套件,支持旧版本的JRE将变得更复杂。 – jefflunt

+0

@保罗我有人怀疑我会从某人那里得到答案,我想这是有很好的理由的;似乎没有简单的方法来计算这些要求。感谢您的回答保罗,但请看看我对normalocity的答案的评论,谁,我认为这是一个很好的观点,我同意这可能是我应该劝阻使用旧的JRE – Andy

回答

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

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

价:How to configure JVM options and memory?

对于其他要求,如CPU REQ,事情变得有点模糊。在那里有很多的CPU,并且给定系统产生的吞吐量可能不仅仅基于CPU速度,而且硬盘驱动器的速度,系统中安装的RAM的数量,网络接口的速度(如果你正在编写网络应用程序)等等。对于这样的要求,您只需要在各种系统上进行测试,并在某处绘制线条,并说:“如果您的硬件至少与X,Y一样强大,您可以期望可以接受的性能,Z“。

您可以做的另一件事是建立在基准测试或某种性能日志记录中,并将性能数据发回给您。许多应用程序都这样做。您知道“我们可以将匿名使用数据发回给母亲吗?”安装某些软件时得到的问题?那么,这些数据之间的共同点是系统特定的细节,如RAM,CPU,硬盘驱动器型号和其他硬件细节(无论您确定的数据与您的应用程序相关)以及性能日志记录数据。通过采取这种方法,您可以获得来自许多不同系统配置的大量性能数据,而无需在内部部署大量不同配置的机器。

您可以对程序崩溃和错误执行相同的操作 - 将堆栈跟踪,系统信息和其他相关数据转储回发送给您的日志文件 - 但当然,仅当您的用户拥有该文件时才可以使用说可以将这些数据发回给你。

+0

感谢您的回答normalocity,虽然我不是很确定你对RAM的含义。你的意思是我应该把RAM的最低要求作为JRE安装的最低要求 - 实际上,理论上这对每个要求应该是一样的!?至于JRE,我认为我会坚持使用JRE 6,但总是推荐最新版本。] – Andy

+0

是的,我认为你已经知道了RAM问题。当你启动JVM时,你可以指定“嘿,不要超过32 MB的RAM”,或者你喜欢的任意数量的RAM。因此,使用不同的最小值(我提供了一个链接来设置JVM内存设置)多次运行您的应用程序,以及允许(1)您的应用程序以可接受的性能运行的最小值,以及(2)不会发生崩溃耗尽内存,成为您的最低RAM要求。 – jefflunt

+0

感谢您的提问,这是一个有趣且信息丰富的见解。我认为我已经得出结论,最低JRE版本应该是JRE 6,最低内存需求为128MB,看起来好像这是安装Java所必需的,而且我相信Java将在Windows 200及更高版本上运行!如果无论如何需要安装Java,我都无法进一步调查我的应用程序的这些需求,尤其是因为我没有合适的测试工具。 – Andy

相关问题