我有一台PowerMac,它在一些.jars上给了我不好的版本号。我很想让它看起来像我在运行Java 6.我怎么会欺骗这个版本?我还要说我正在运行 PowerPC和Leopard
答案 0 :(得分:3)
最可能的问题是您有Java 6 JAR文件,并且您尝试在旧的Java安装上运行它们。
我如何欺骗版本?
你的问题的答案是,你不能。运行Java 6特定JAR文件的方法是使用Java 6(或更高版本)JRE或JDK。
问题是Java类文件的格式已更改,并且您的安装无法处理新格式。这不是你可以假装不存在的无偿改变。 Java 6(实际上是Java 5)支持泛型类型,枚举,注释和其他东西。假设JAR包含使用这些新语言功能的代码,旧的JRE根本不知道如何处理它们。
有两种解决方案:
在所有计算机上将Java安装升级到所需级别。这是最好的解决方案......如果它是一个选项......因为这意味着您的用户将获得安全性和错误修复以及性能增强的好处。 (并且您的项目进度不会因支持传统平台的限制而受阻。)
编译所有代码,以便与仍然必须使用的最旧版本的Java兼容。使用适当的-source / -target / -Xbootclasspath选项编译相应的旧JDK或更新的JDK ......如javac
手册页所述。
第二个解决方案的问题是,如果有问题的JAR文件的源代码使用最近添加的Java语言功能或API,那么重新编译旧平台将失败。要解决这个问题,你需要重写代码,用古老的东西替换漂亮的现代东西。不是一个好的解决方案,IMO。
另一种可能性是您看到损坏的JAR文件。这不太可能,但如果您使用applet或webstart,并且服务器正在提供错误页面而不是JAR文件,则可能会发生这种情况。
第三种可能性是您没有正确配置Mac的Java安装。使Java 7成为默认应该允许您运行所有没有类版本问题的东西。 (谢谢@ paulsm4)请注意,我无法帮助你...'因为我不在Mac上使用Java。