2014-02-27 129 views
1

我使用Linux操作系统Ubuntu 13.10 我试图运行一个脚本,并出现以下错误:错误:爪哇/郎/ NoClassDefFoundError的:爪哇/郎/对象

/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar: Success

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

我:

的javac -version

javac 1.7.0_51

Java的版本

java version "1.7.0_51"

OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.13.10.1)

OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

当我运行: echo $CLASSPATH:我得到空白输出

echo $JAVA_HOME:空白输出

请帮助我,如何解决这个问题。

+0

将您的JAVA_HOME设置为JDK目录 – Sanjeev

+0

我该怎么做?我不知道 。 :( –

+0

上commandprompt执行 “出口JAVA_HOME = <路径到你的JDK目录>” 不带引号 – Sanjeev

回答

2

您必须设置您的CLASSPATH和JAVA_HOME环境变量。在此请看:

https://askubuntu.com/questions/186693/how-set-classpath-variable-for-a-folder-in-ubuntu http://www.wikihow.com/Set-Up-Your-Java_Home-Path-in-Ubuntu

这可能是作为例子时有用,通过你的更换目录:

export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"

export CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib"

+4

自1998年以来,您不必设置CLASSPATH,除非目录是.class文件的包结构层次结构的根目录,而lib目录不是。 – EJP

+0

@Andres : 谢谢你的帮助。 我d id这两个命令,但仍然收到错误。我删除了“”。 –

+0

你确定你指向正确的目录吗?另外,不要删除“。”。这将允许JVM从当前目录开始查找类。 – Andres

1

之后您编译代码,你最终的.class文件为你的程序中的每个类。这些二进制文件是Java解释来执行程序的字节码。 NoClassDefFoundError指出负责动态加载类的类加载器无法找到您尝试使用的类的.class文件。这可能表示在执行代码时没有设置类路径选项。此链接说明如何在执行时设置类路径

+0

谢谢你的帮助和很好的解释。 :) –