如何在用户友好的消息中更改UnsupportedClassVersionError?

时间:2017-04-13 06:08:20

标签: java gradle compilation

如果Java版本旧了,那么Java会产生如此非常神秘的错误消息:UnsupportedClassVersionError ....虽然我们在发行说明中有必要的Java版本,但许多客户都会通过此错误消息与支持人员联系。

是否有一个简单的解决方案可以向用户显示更好的错误消息?

我们使用Gradle进行建筑。如何使用较低的类文件版本编译一小组文件?在这个文件中,我们可以进行版本检查以显示错误消息。

当然我们无法更改完整项目的类文件版本。

3 个答案:

答案 0 :(得分:1)

  

如何使用较低的类文件版本编译一小组文件?

使用-source命令的-targetjavac选项(请参阅Table 47.8),或者由于您使用的是Gradle,请使用相应的相应设置在Gradle构建文件中,您需要能够在较旧的Java版本上运行该部件。

对于Gradle,您可以使用sourceCompatibilitytargetCompatibility属性,请参阅Gradle文档中的https://pastebin.com/dRsTVzEg

答案 1 :(得分:1)

我创建了一个名为use-newer-java的小型库,您可以使用它来执行版本检查:

  1. 在项目中包含use-newer-java作为依赖项
  2. 将您构建的jar清单中的Main-Class:字段设置为 use.newer.java.Version8use.newer.java.Version9等,视情况而定。
  3. 将jar清单中的Main-Class-After-UseNewerJava-Check:设置为应用程序的正常主类 - 使用较新的Java 将遵循此设置,并在进行检查后调用此代码
  4. https://github.com/rtyley/use-newer-java

答案 2 :(得分:0)

通过JWS分发您的申请。它规定了确保安装所需的JRE版本。