我了解有关此类错误的问题。我希望我的程序能够检测正在运行的java版本并向用户提供更优雅的消息,而不是有点神秘的“线程“main”中的异常bla bla bla”消息。我可以检测到正在运行的 Java 版本,但似乎我的程序永远无法运行我的检查代码。
简而言之...我的程序如何捕获此错误、显示消息并正常退出?
最佳答案
此异常是从 ClassLoader
引发的,因此我建议您编写自己的 ClassLoader
版本,它将回溯此类错误。
UPD:更具体地说,您可以尝试重写方法defineClass
,捕获此类异常并以方便的方式包装它。
UPD-2:正如我在评论中提到的,以及 us2012重新表述了我的想法(感谢他),你必须使用保证低于用户虚拟机版本的 -target
来编译你的类加载器
关于java - 如何捕获 'Unsupported major.minor version'错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284981/