Установка OpenJDK-7 в Xubuntu с помощью apt-get - PullRequest
2 голосов
/ 05 января 2012

Я пытаюсь правильно установить openjdk-7 в Xubuntu, используя apt-get. Кажется, версия java, которую я получаю, не работает с версией javac. Вот что у меня есть в Xubuntu:

chris@ubuntu:~$ sudo apt-get install openjdk-7-jre
...
Setting up openjdk-7-jre-lib (7~b147-2.0-0ubuntu0.11.10.1) ...
Setting up libaccess-bridge-java (1.26.2-6) ...
Setting up icedtea-7-jre-jamvm (7~b147-2.0-0ubuntu0.11.10.1) ...
Setting up openjdk-6-jre-headless (6b23~pre11-0ubuntu1.11.10) ...
...
chris@ubuntu:~$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10)
OpenJDK Client VM (build 20.0-b11, mixed mode, sharing)
...
chris@ubuntu:~$ sudo apt-get install openjdk-7-jdk
...
chris@ubuntu:~$ javac -version
javac 1.7.0_147

Я не эксперт по Linux или Java, поэтому я написал программу HelloWorld и протестировал ее на своем Mac перед тем, как попробовать ее в устройстве Ubuntu. У меня есть:

---------------------------------------------------
// Hello World!

public class HelloWorld {
        public static void main(String[] args) {
                System.out.println("Hello, world.");
        }
}
---------------------------------------------------
Chris-mac:~ Chris$ javac -version
javac 1.6.0_29
Chris-mac:~ Chris$ java -version
java version "1.6.0_29"
Chris-mac:javaprac Chris$ java HelloWorld
Hello, world.
Chris-mac:javaprac Chris$ clear

Это выглядит хорошо, но переключение обратно на Ubuntu, перекомпиляция и попытка запустить ту же программу приводит к:

chris@ubuntu:~$ javac HelloWorld.java 
chris@ubuntu:~$ java HelloWorld 
Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld : Unsupported major.minor version 51.0
  at java.lang.ClassLoader.defineClass1(Native Method)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
  at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: HelloWorld. Program will exit.

Есть идеи? Все, что я хочу сделать, это заставить openjdk-7 работать на коробке Xubuntu. Я прав, что проблема в том, что я использую apt-get разные версии java и javac?

1 Ответ

3 голосов
/ 05 января 2012

Проблема в том, что вы компилируете для Java 7 и работаете в Java 6:

...
chris@ubuntu:~$ java -version
java version "1.6.0_23"
...
chris@ubuntu:~$ javac -version
*javac 1.7.0_147*
...

Вот почему у вас проблема с версиями класса:

Unsupported major.minor version 51.0

Я бы начал с , который java и , который javac , чтобы начать отслеживать, откуда каждый запускается. Я предполагаю, что вам нужно обновить JAVA_HOME и ваш PATH , чтобы java работал по тому же пути, что и javac .

...