0

我有一个 PowerMac,它在一些 .jar 上给了我错误的版本号。我想让它看起来像是在运行 Java 6。我将如何欺骗该版本?我还要说我正在运行PowerPC 和 Leopard

4

1 回答 1

3

最可能的问题是您有 Java 6 JAR 文件并且您正试图在旧的 Java 安装上运行它们。

我将如何欺骗版本?

你的问题的答案是你不能。运行 Java 6 特定 JAR 文件的方式是使用 Java 6(或更高版本)JRE 或 JDK。

问题是 Java 类文件的格式发生了变化,而您的安装无法应对新的格式。这不是你可以假装不存在的无端改变。Java 6(实际上是 Java 5)支持泛型类型、枚举、注释和其他东西。假设 JAR 包含使用这些新语言特性的代码,那么旧的 JRE 根本不知道如何处理它们。

有两种解决方案:

  • 在所有机器上将您的 Java 安装升级到所需的级别。这是最好的解决方案……如果可以选择的话……因为这意味着您的用户将受益于安全性和错误修复以及性能增强。(并且您的项目进度不会受到支持旧平台的限制。)

  • 编译所有代码以与您仍然必须使用的最旧版本的 Java 兼容。要么在相应的旧 JDK 上编译,要么在更新的 JDK 上使用适当的 -source / -target / -Xbootclasspath 选项编译......如javac手册页所述。

第二种解决方案的问题是,如果相关 JAR 文件的源代码使用最近添加的 Java 语言功能或 API,那么为旧平台重新编译将失败。要解决此问题,您将需要重写代码以用古老的东西替换漂亮的现代东西。不是一个好的解决方案,IMO。


另一种可能性是您看到损坏的 JAR 文件。这不太可能发生,但如果您使用的是 applet 或 webstart,并且服务器正在传递错误页面而不是 JAR 文件,则可能会发生这种情况。


第三种可能性是您根本没有正确配置 Mac 的 Java 安装。将 Java 7 设为默认应该允许您在没有类版本问题的情况下运行所有​​内容。(感谢@paulsm4)请注意,我无法帮助您……因为我不在 Mac 上使用 Java。

于 2013-01-14T02:10:35.423 回答