Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java不支持的版本--典型问题_Java - Fatal编程技术网

Java不支持的版本--典型问题

Java不支持的版本--典型问题,java,Java,若你们曾经使用过java,我想至少有一次你们会在不支持的版本上出错。每个人都知道如何修复、更改JRE等 今天,我想知道如何制作可以在任何地方(任何JRE)运行的jar文件。简短回答:不可能 更好的答案是:定义你的最低目标(实际上不应该是“任何JRE”)。也许你指的是“标准J2SE1.4安装”或“安卓系统上”(这不是真正的“JRE”) 确切的最低要求是所使用的Java语言特性、API和/或其他库的使用(它们在哪里编译?)以及不同Java平台之间的差异。DVD播放机与桌面非常不同。简短回答:不可能

若你们曾经使用过java,我想至少有一次你们会在不支持的版本上出错。每个人都知道如何修复、更改JRE等


今天,我想知道如何制作可以在任何地方(任何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类在一个版本中编译并在另一个版本中运行时,会出现此错误