Java不支持的版本--典型问题
若你们曾经使用过java,我想至少有一次你们会在不支持的版本上出错。每个人都知道如何修复、更改JRE等Java不支持的版本--典型问题,java,Java,若你们曾经使用过java,我想至少有一次你们会在不支持的版本上出错。每个人都知道如何修复、更改JRE等 今天,我想知道如何制作可以在任何地方(任何JRE)运行的jar文件。简短回答:不可能 更好的答案是:定义你的最低目标(实际上不应该是“任何JRE”)。也许你指的是“标准J2SE1.4安装”或“安卓系统上”(这不是真正的“JRE”) 确切的最低要求是所使用的Java语言特性、API和/或其他库的使用(它们在哪里编译?)以及不同Java平台之间的差异。DVD播放机与桌面非常不同。简短回答:不可能
今天,我想知道如何制作可以在任何地方(任何JRE)运行的jar文件。简短回答:不可能 更好的答案是:定义你的最低目标(实际上不应该是“任何JRE”)。也许你指的是“标准J2SE1.4安装”或“安卓系统上”(这不是真正的“JRE”)
确切的最低要求是所使用的Java语言特性、API和/或其他库的使用(它们在哪里编译?)以及不同Java平台之间的差异。DVD播放机与桌面非常不同。简短回答:不可能 更好的答案是:定义你的最低目标(实际上不应该是“任何JRE”)。也许你指的是“标准J2SE1.4安装”或“安卓系统上”(这不是真正的“JRE”)
确切的最低要求是所使用的Java语言特性、API和/或其他库的使用(它们在哪里编译?)以及不同Java平台之间的差异。DVD播放机与台式机很不一样。我不太确定你是否希望以此为目标,现在大多数人都以Java 1.4+平台为目标,这意味着它们也将在1.5和1.6上运行,而且实际上没有人使用任何低于1.4的Java版本,你应该是安全的
话虽如此,这并不是完全不可能,只是非常困难,维护是一场噩梦。我不太确定你是否希望以此为目标,现在大多数人的目标是Java 1.4+平台,这意味着他们也将在1.5和1.6上运行,而且实际上没有人使用任何低于1.4的Java版本,你应该是安全的
话虽如此,这并不是完全不可能,只是非常困难,维护是一场噩梦。即使你有这样的目标,你也只能在一个子集上进行测试。根据您的自动测试的全面程度,您可能只需要定义一小部分(可能是6个左右)正确支持的JRE。如果有人试图在其他东西上运行它,那么,它可能会工作,但你不能声称已经测试过它 如果它是一个GUI应用程序,这更像是一场噩梦,因为测试GUI是可怕的。因此,在这种情况下,您将希望支持更少的JRE
请记住,您需要测试JRE/OS的组合,并且有很多不同的操作系统-至少有十几个单独使用的不同版本的Windows(不包括本地化)。即使您将此作为目标,您也只能在一个子集上进行测试。根据您的自动测试的全面程度,您可能只需要定义一小部分(可能是6个左右)正确支持的JRE。如果有人试图在其他东西上运行它,那么,它可能会工作,但你不能声称已经测试过它 如果它是一个GUI应用程序,这更像是一场噩梦,因为测试GUI是可怕的。因此,在这种情况下,您将希望支持更少的JRE
请记住,您需要测试JRE/OS的组合,并且有很多不同的操作系统-至少有十几个单独使用的不同版本的Windows(不包括本地化)。如果您正在创建的应用程序是使用Java 1.5语法编程的,您可以尝试使用。它使用字节码操作来修改类和一些运行时代码,从而允许代码在1.4和1.3版本的JVM中运行 当然,它有很多限制,但它支持1.5规范中的许多功能(摘自其网站): 支持哪些Java 5.0功能
- 仿制药
- 注释
- 关于泛型和注释的思考
- 类型安全枚举
- 自动装箱/拆箱
- 增强for循环
- 瓦拉格斯
- 协变返回类型
- 格式化输出
- 静态导入
- 并发实用程序
- 集合框架增强
在同一页的末尾,还有一些类似工具的链接。但是Retrotranslator似乎是唯一一个仍然有效维护的应用程序。如果您正在创建的应用程序是使用Java 1.5语法编程的,您可以尝试使用。它使用字节码操作来修改类和一些运行时代码,从而允许代码在1.4和1.3版本的JVM中运行 当然,它有很多限制,但它支持1.5规范中的许多功能(摘自其网站): 支持哪些Java 5.0功能
- 仿制药
- 注释
- 关于泛型和注释的思考
- 类型安全枚举
- 自动装箱/拆箱
- 增强for循环
- 瓦拉格斯
- 协变返回类型
- 格式化输出
- 静态导入
- 并发实用程序
- 集合框架增强
在同一页的末尾,还有一些类似工具的链接。但是Retrotranslator似乎是唯一一个仍然有效维护的。当您的java类在一个版本中编译并在另一个版本中运行时,会出现此错误。当您的java类在一个版本中编译并在另一个版本中运行时,会出现此错误