我已经使用Eclipse IDE编写了Java应用程序,现在我需要知道运行该应用程序所需的最低JRE版本!我知道某些方法只适用于以后的JRE,但我想知道最简单的方法来找出我的应用程序的最高要求是什么,所以任何建议,将不胜感激...如何确定我的Java应用程序的最低JRE版本和系统要求
同时,当我在需求的话题,我将不胜感激任何意见或决定为我的软件一般最低系统要求的方法 - 即RAM最低金额...
在此先感谢
我已经使用Eclipse IDE编写了Java应用程序,现在我需要知道运行该应用程序所需的最低JRE版本!我知道某些方法只适用于以后的JRE,但我想知道最简单的方法来找出我的应用程序的最高要求是什么,所以任何建议,将不胜感激...如何确定我的Java应用程序的最低JRE版本和系统要求
同时,当我在需求的话题,我将不胜感激任何意见或决定为我的软件一般最低系统要求的方法 - 即RAM最低金额...
在此先感谢
就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,硬盘驱动器型号和其他硬件细节(无论您确定的数据与您的应用程序相关)以及性能日志记录数据。通过采取这种方法,您可以获得来自许多不同系统配置的大量性能数据,而无需在内部部署大量不同配置的机器。
您可以对程序崩溃和错误执行相同的操作 - 将堆栈跟踪,系统信息和其他相关数据转储回发送给您的日志文件 - 但当然,仅当您的用户拥有该文件时才可以使用说可以将这些数据发回给你。
感谢您的回答normalocity,虽然我不是很确定你对RAM的含义。你的意思是我应该把RAM的最低要求作为JRE安装的最低要求 - 实际上,理论上这对每个要求应该是一样的!?至于JRE,我认为我会坚持使用JRE 6,但总是推荐最新版本。] – Andy
是的,我认为你已经知道了RAM问题。当你启动JVM时,你可以指定“嘿,不要超过32 MB的RAM”,或者你喜欢的任意数量的RAM。因此,使用不同的最小值(我提供了一个链接来设置JVM内存设置)多次运行您的应用程序,以及允许(1)您的应用程序以可接受的性能运行的最小值,以及(2)不会发生崩溃耗尽内存,成为您的最低RAM要求。 – jefflunt
感谢您的提问,这是一个有趣且信息丰富的见解。我认为我已经得出结论,最低JRE版本应该是JRE 6,最低内存需求为128MB,看起来好像这是安装Java所必需的,而且我相信Java将在Windows 200及更高版本上运行!如果无论如何需要安装Java,我都无法进一步调查我的应用程序的这些需求,尤其是因为我没有合适的测试工具。 – Andy
你知道工程师如何弄清楚一座桥可承受多少重量?他们驾驶的越来越重的卡车,直到它崩溃,然后他们重建它。做相反的事情......用JDK 7开始编译你的应用程序,并使用早期的JDK直到它不能编译。与记忆一样...使用越来越少,直到它断裂。是的,半tongue :) :) – Paul
单靠编译是不够的 - 我几乎也给出了这个答案。因为以前版本的JDK/JRE可能包含大部分时间不使用的版本中的错误,所以编译并不能保证程序正确执行。您真的需要它来(1)编译和(2)让您的整个测试套件针对给定的JRE传递。如果你没有测试套件,支持旧版本的JRE将变得更复杂。 – jefflunt
@保罗我有人怀疑我会从某人那里得到答案,我想这是有很好的理由的;似乎没有简单的方法来计算这些要求。感谢您的回答保罗,但请看看我对normalocity的答案的评论,谁,我认为这是一个很好的观点,我同意这可能是我应该劝阻使用旧的JRE – Andy