据我了解,Java JRE是向后兼容的,如果你在Java(JDK)7中编写程序,则可以在Java(JRE)8中运行。
我开发了一些Java 8程序,并建立了.jar和EXE文件,完成后它们总是正常运行。然而,在安装Java JDK 11(11.0.2)后,这些旧的.jar文件就出问题了...
其中有几个仍在运行,但它们的GUI已经扩展了,按钮和图像比以前更大,在某些情况下会模糊。
一个程序根本就不运行,在控制台中尝试运行它会产生一个异常:“AWT-EventQueue-0”java.lang.NoClassDefFoundError: javax/activation/ActivationDataFlavor 我知道这个类和其他一些javax类已经从JDK 11中删除了,因此从开发的角度来看,您不能再使用它们,除非使用Maven等工具。但是我不明白为什么安装JDK 11会对我的旧jar文件产生任何影响,因为我没有安装新的JRE,即使有一个新的JRE,它也应该是向后兼容的?
此外,我使用Apache NetBeans 10,它在Java 8上运行良好,但在我安装了JDK 11之后,NetBeans 10仍然运行,但其加载窗口很大且模糊,IDE的图像也模糊,所有文本都变大了。
那么为什么安装JDK 11会对旧程序产生这些负面影响呢?
注意-我尝试将jar / EXE与JRE版本8(201)的javaw.exe相关联,但它们仍然具有相同的问题。
我开发了一些Java 8程序,并建立了.jar和EXE文件,完成后它们总是正常运行。然而,在安装Java JDK 11(11.0.2)后,这些旧的.jar文件就出问题了...
其中有几个仍在运行,但它们的GUI已经扩展了,按钮和图像比以前更大,在某些情况下会模糊。
一个程序根本就不运行,在控制台中尝试运行它会产生一个异常:“AWT-EventQueue-0”java.lang.NoClassDefFoundError: javax/activation/ActivationDataFlavor 我知道这个类和其他一些javax类已经从JDK 11中删除了,因此从开发的角度来看,您不能再使用它们,除非使用Maven等工具。但是我不明白为什么安装JDK 11会对我的旧jar文件产生任何影响,因为我没有安装新的JRE,即使有一个新的JRE,它也应该是向后兼容的?
此外,我使用Apache NetBeans 10,它在Java 8上运行良好,但在我安装了JDK 11之后,NetBeans 10仍然运行,但其加载窗口很大且模糊,IDE的图像也模糊,所有文本都变大了。
那么为什么安装JDK 11会对旧程序产生这些负面影响呢?
注意-我尝试将jar / EXE与JRE版本8(201)的javaw.exe相关联,但它们仍然具有相同的问题。