如何升级 Java 编译器 - 不同的问题

如何升级 Java 编译器 - 不同的问题

在最近的自动软件更新之后,14.04 上的 Java 7 不再起作用。最初的问题与“如何升级 Java 编译器”中描述的问题相同。

以下是我们收到的消息:

warning: Blabla.class: major version 52 is newer than 51, the highest major version supported by this compiler.

it is recommended that the compiler be upgraded.

那里给出的解决方案是在提问者给出“javac -version”和“java -version”的输出后提出的 - 这两个并不相同。

就我而言,这些查询的输出似乎相同。如果我遗漏了某些内容,请看以下输出:

javac-版本

javac 1.7.0_95

java -版本

Java 版本“1.7.0_95”

OpenJDK 运行时环境(IcedTea 2.6.4)(7u95-2.6.4-0ubuntu0.14.04.2)OpenJDK 64 位服务器 VM(版本 24.95-b01,混合模式)

执行

“sudo 更新替代方案——config javac”

显示了三种替代方案。我尝试了所有三种方案,但都不起作用。然后我从系统中完全删除了所有 java(按照“如何完全卸载 java”中的说明操作)。然后我从 Oracle 站点安装了 java 7。虽然原始错误消息仍然出现,并且我无法运行已编译的程序,但现在只有一个替代方案

“sudo 更新替代方案——config javac”

它说:链接组 javac(提供 /usr/bin/javac)中只有一个替代方案:/usr/lib/jvm/java-7-openjdk-amd64/bin/javac 无需配置。

为了完整起见,以下是我尝试编译/运行自动更新之前正在运行的程序时发生的情况:

lanzcc@ubuntu910:~/recruit$ javac ReadProgram.java

警告:./Program.class:主版本 52 比 51 新,后者是此编译器支持的最高主版本。建议升级编译器。1 警告

lanzcc@ubuntu910:~/recruit$ java 读取程序

线程“main”中出现异常 java.lang.UnsupportedClassVersionError: 程序:不支持 major.minor 版本 52.0 在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:803) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2625) at java.lang.Class.getMethod0(Class.java:2866) at java.lang.Class.getMethod(Class.java:1676) at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) lanzcc@ubuntu910:~/recruit$

有任何想法吗?

谢谢!

答案1

解决

在各种类文件中,有一个自软件升级以来没有编译过。我知道所有其他文件都在重新编译,但我就是没注意到这个。因此它有一个不匹配的编译器标签。

对不起。

相关内容