设置JAVA_HOME& CentOS 6中的CLASSPATH

时间:2013-04-29 04:45:18

标签: java path centos noclassdeffounderror

我在/ usr / java /.

中解压缩了我的jdk

我将CLASSPATH,PATH,JAVA_HOME放入/ etc / profile中,如下所示。

export JAVA_HOME=/usr/java/jdk1.7.0_21
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

当我在/usr/java/jdk1.0.7_21/bin中编译一些java文件时,

它有效。但是当我在其他文件夹上做同样的事情时,它并没有。

显示NoClassDefFoundError。

所以我通过echo检查了ClASSPATH,PATH,JAVA_HOME。

如下所示。

[root@localhost a]# echo $JAVA_HOME
/usr/java/jdk1.7.0_21
[root@localhost a]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/guest/bin:/usr/java/jdk1.7.0_21/bin:/usr/java/bin:/usr/java/jdk1.7.0_21/bin
[root@localhost a]# echo $CLASSPATH
/usr/java/jdk1.7.0_21/jre/lib/ext:/usr/java/jdk1.7.0_21/lib/tools.jar

我想在控制台中使用java,在这种情况下我能做些什么?

提前致谢。

PS。我做了source /etc/profile

=================我面对的错误==================== ===

当我命令java A(我的类名是A)时。

Error: Could not find or load main class A

case I命令java -cp / home / guest / workspace / AAA / src / a / A

Exception in thread "main" java.lang.NoClassDefFoundError: A (wrong name: a/A)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

=====================我的代码全部内容===================== ================= java部分。路径是/usr/guest/workspace/AAA/src/a/A.java

package a;

public class A {
    public static void main(String[] args) {
        System.out.println("a!\n");
    }
}

/ etc / profile部分。左边部分是默认的。

export JAVA_HOME=/usr/java/jdk1.7.0_21
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

其他部分可能有助于解决。

  • which java打印" / usr / java / bin"。有符号链接。
  • 我的jdk位置是/usr/java/jdk1.7.0_21。在./bin中,每个代码都可以正常工作。
  • 我没有碰到/root/.bash_profile。我刚刚编辑了/ etc / profile。

感谢您的关注。即使它没有想到。你的帮助对我很有帮助:D再次感谢。

7 个答案:

答案 0 :(得分:35)

搜索here以获取centos jre安装所有用户:

在CentOS中设置环境变量的最简单方法是使用中的导出

$> export JAVA_HOME=/usr/java/jdk.1.5.0_12

$> export PATH=$PATH:$JAVA_HOME

但是,以这种方式设置的变量是瞬态的,即它们会在您退出shell时消失。显然,在设置即使在系统重新启动时需要持久化的环境变量时,这也没有用。 在这种情况下,您需要在系统范围的配置文件中设置变量。在CentOS(我使用的是v5.2)中,建议将文件夹/etc/profile.d/添加到系统配置文件中。 例如,在安装Sun JDK时,可能需要设置JAVA_HOME和JRE_HOME环境变量。在这种情况下: 创建一个名为 java.sh

的新文件
vim /etc/profile.d/java.sh

在此文件中,初始化必要的环境变量

export JRE_HOME=/usr/java/jdk1.5.0_12/jre
export PATH=$PATH:$JRE_HOME/bin

export JAVA_HOME=/usr/java/jdk1.5.0_12
export JAVA_PATH=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

现在,当您重新启动计算机时,java.sh中的环境变量将自动初始化(如果您对如何加载/etc/profile.d/中的文件感到好奇,请检查/ etc / profile)。 / em>的

PS:如果要在java.sh内加载环境变量而不必重新启动计算机,可以使用source命令,如下所示:

$> source java.sh

答案 1 :(得分:6)

说明:

  1. 点击桌面面板中的终端图标打开终端 窗口并访问命令提示符。
  2. 键入命令which java以查找Java的路径 可执行文件。
  3. 键入命令su -以成为root用户。
  4. 键入命令vi /root/.bash_profile以打开系统 Vi文本编辑器中的 bash_profile 文件。您可以将 vi 替换为 您首选的文本编辑器。
  5. 在文件底部输入export JAVA_HOME=/usr/local/java/。 将/usr/local/java替换为第二步中找到的位置。
  6. 保存并关闭 bash_profile 文件。
  7. 键入命令exit以关闭根会话。
  8. 退出系统并重新登录。
  9. 键入命令echo $JAVA_HOME以确保已设置路径 正确。
  10. set java_home in centos

答案 2 :(得分:3)

我在/ home / prasanth中创建了一个名为a的文件夹,并将您的代码复制到名为A.java的文件中。我从/ home / prasanth编译为javac a/A.java并运行javac a.A。我的输出为

a!

答案 3 :(得分:1)

您似乎对环境变量没有任何问题。

使用

从src编译文件

javac a/A.java

然后,以

运行您的程序

java a.A

答案 4 :(得分:0)

我必须将/etc/profile.d/java_env.sh更改为指向新路径,然后注销/登录。

答案 5 :(得分:0)

执行以下步骤:

  1. sudo -s
  2. yum安装java-1.8.0-openjdk-devel
  3. vi .bash_profile, 并将以下行添加到.bash_profile文件并保存文件。
  

导出   JAVA_HOME = / usr / lib / jvm / java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 /

注意-我正在使用CentOS7作为操作系统。

答案 6 :(得分:0)

通过javac设置/etc/alternatives/javac,您可以将其添加到.bash_profile:

JAVA_HOME=$(l=$(which javac) ; while : ; do nl=$(readlink ${l}) ; [ "$nl" ] || break ; l=$nl ; done ; echo $(cd $(dirname $l)/.. ; pwd) )
export JAVA_HOME