【问题标题】:Installing OpenJDK-7 in Xubuntu Using apt-get在 Xubuntu 中使用 apt-get 安装 OpenJDK-7
【发布时间】:2012-01-19 08:22:01
【问题描述】:

我正在努力尝试使用 apt-get 在 Xubuntu 中正确安装 openjdk-7。看来我得到的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 的不同版本是对的吗?

【问题讨论】:

  • 运行update-alternatives --config java会得到什么?
  • 这就是答案。我需要切换到/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java

标签: java ubuntu openjdk apt-get


【解决方案1】:

问题是您正在为 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

我会从 which javawhich javac 开始追踪它们的运行位置。我的猜测是您需要更新 JAVA_HOME 和您的 PATH 以使 java 从与 javac 相同的路径运行.

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2013-03-10
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多