2014-01-26 37 views
2

我用Java完成了一个游戏并将它发送给了朋友。如何找出我的Java程序的最低JRE要求

在我的电脑启动程序工作得很好。

但他得到这个错误:

"Could not find the main class: Main. program will exit" 

我的JRE版本是最新的一个。他的JRE版本是1.6。

他更新了他的JRE,问题解决了。

这对我有点担心,因为据我所知,1.6并不是JRE的一个非常旧的版本。这不是最近的,但不是那么古老。

这很令人担忧,因为我打算将我的游戏发送给很多朋友,并试图将其发布到互联网上。

很多人没有最新的JRE。而且他们大多是非程序员,所以我不能期望他们在下载我的游戏时更新到最新版本的Java。他们可能不知道Java是什么,即使他们在计算机上得到了它,并在接收到错误时,他们会放弃游戏。

如果我的游戏不适用于显着旧的JRE,那将是合理的。这是使用Java的本质的一部分。但是相对更新的JRE 1.6不适用于我的游戏,这令人担忧。

请注意:我的游戏没有实现任何“特殊”功能。 Swing和KeyBindings是我可以在我的游戏中想到的Java中的'最新'新增内容)

总之,我想知道我的游戏在大多数试图运行的计算机上都能正常工作。知道它不适用于相对较新的JRE,令人担忧。

所以我有两个问题:

  1. 这是正常的,对于一个Java程序,以有 的JRE version这样"high" **的要求呢?做很多Java游戏需要至少版本1.6 的JRE?这是常见的吗?
  2. 如何才能找到我的 程序的最低JRE版本要求?有没有一种有条不紊的方式来做到这一点,或者我只需要通过我游戏中使用的所有库来找出 哪些是 JRE的每个版本?
+0

尝试与其他JRE的低于1.6 –

+1

首先运行它,最重要的是,你必须建立自己的开发环境,以用最小的JDK你有兴趣这对于源代码级别和生成的.class文件版本都是如此。 –

+0

Java 6已经8岁了,几乎一年前就已经结束了生命。考虑到Java 6在Java开发人员中占有很大的比例,所以认为Java 6是“相对较新的”。 –

回答

1

事实上,您的朋友可能没有正确安装和配置JRE。至少在这方面有例外。

一般情况下,如果我们放下你的朋友遇到的问题并尝试回答你的直接问题 - 我相信最好的方式是检查你的程序,试着用jre 1.5,jre 1.6和1.7运行 当然,一般情况下,您应该使用与计划支持的最旧版本的JRE相对应的Java编译器编译您的游戏。您可以从Oracle网站下载所有这些JRE/JDK

请记住,如果您在计算机上编译JDK 1.7,而不是以后在JRE 6上运行。 相反的方向应该工作,因为Java是向后兼容的。无论如何,你最好还是检查一下。

如果您将程序作为applet发布,但我相信这是您能做的最好的选择,这里没有银弹解决方案。

如果您将游戏作为“独立应用程序”分发,您可能需要考虑“将JRE与安装包一起打包,在这种情况下,游戏将包含一个JRE和一个配置所有内容并运行节目以“捆绑” JRE。

希望这有助于。

+0

“请记住,如果您使用JDK 1.7在您的PC上进行编译,那么稍后它将无法在JRE 6上运行。”这是不正确的,你可以用目标开关设置产生的字节码版本。 – Kayaman

+0

OP的错误输出清楚地表明'java'运行时已经启动并且未能找到Main类。 –

+0

感谢您的帮助。让我看看我是否理解你所说的一切:1-如果我的计算机上安装了JDK 1.7,而编程我的应用程序,则比通常情况下它不能运行在比JRE 7更早的JRE上。如果我想要我的应用程序能够在JRE 6上运行,而不需要使用JDK 1.6进行编程。它是否正确? 2-可以选择“将JRE与游戏打包”。在这种情况下,如果游戏运行并且JRE太旧,则计算机将更新JRE。它是否正确? 如果所有这些都是正确的,那么比我提出一些问题。谢谢 – user3150201

相关问题