Como atualizar o compilador java - problema diferente

0

Após a atualização de software automática mais recente, o java 7 em 14.04 não funciona mais. O problema inicial é o mesmo descrito em "Como atualizar o compilador Java".

Esta é a mensagem que recebemos:

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.

A solução dada lá foi sugerida depois que o questionador deu os resultados de "javac -version" e "java -version" - estes dois não eram os mesmos.

No meu caso, a saída dessas consultas parece ser a mesma. Aqui estão eles, caso eu esteja perdendo alguma coisa:

javac -version

javac 1.7.0_95

java -version

versão java "1.7.0_95"

Ambiente de tempo de execução do OpenJDK (IcedTea 2.6.4) (7u95-2.6.4-0ubuntu0.14.04.2) OpenJDK 64-Bit Server VM (compilação 24.95-b01, modo misto)

executando

"sudo update-alternatives --config javac"

mostrou três alternativas. Eu tentei todos os três e nenhum funcionou. Então, eu removi completamente todo o java do sistema (seguindo as instruções em "Como desinstalar completamente o java".) Eu instalei o java 7 do site da Oracle. Enquanto a mensagem de erro original ainda ocorre e não consigo executar um programa compilado, agora há apenas uma alternativa após

"sudo update-alternatives --config javac"

diz: Há apenas uma alternativa no javac do grupo de links (fornecendo / usr / bin / javac): / usr / lib / jvm / java-7-openjdk-amd64 / bin / javac Nada para configurar.

Para completar, aqui está o que acontece quando tento compilar / executar um programa que estava funcionando pouco antes da atualização automática:

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

aviso: ./Program.class: a versão principal 52 é mais recente que 51, a maior versão principal suportada por este compilador.   Recomenda-se que o compilador seja atualizado. 1 aviso

lanzcc @ ubuntu910: ~ / recrutar $ java ReadProgram

Exceção no thread "main" java.lang.UnsupportedClassVersionError: Programa: versão major.minor não suportada 52.0     em java.lang.ClassLoader.defineClass1 (método nativo)     em java.lang.ClassLoader.defineClass (ClassLoader.java:803)     em java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)     em java.net.URLClassLoader.defineClass (URLClassLoader.java:449)     em java.net.URLClassLoader.access $ 100 (URLClassLoader.java:71)     em java.net.URLClassLoader $ 1.run (URLClassLoader.java:361)     em java.net.URLClassLoader $ 1.run (URLClassLoader.java:355)     em java.security.AccessController.doPrivileged (método nativo)     em java.net.URLClassLoader.findClass (URLClassLoader.java:354)     em java.lang.ClassLoader.loadClass (ClassLoader.java:425)     em sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:308)     em java.lang.ClassLoader.loadClass (ClassLoader.java:358)     em java.lang.Class.getDeclaredMethods0 (método nativo)     em java.lang.Class.privateGetDeclaredMethods (Class.java:2625)     em java.lang.Class.getMethod0 (Class.java:2866)     em java.lang.Class.getMethod (Class.java:1676)     em sun.launcher.LauncherHelper.getMainMethod (LauncherHelper.java:494)     em sun.launcher.LauncherHelper.checkAndLoadMain (LauncherHelper.java:486) lanzcc @ ubuntu910: ~ / recruit $

Alguma idéia?

OBRIGADO!

    
por user1695839 10.04.2016 / 18:46

1 resposta

0

RESOLVEU

Havia, entre os vários arquivos de classe, um que não havia sido compilado desde a atualização do software. Eu sabia que todos os outros estavam sendo recompilados, mas eu simplesmente não notei isso. Assim, ele tinha uma tag de compilador não correspondente.

Desculpe.

    
por user1695839 11.04.2016 / 18:29