在 CentOS 6 中设置 JAVA_HOME & CLASSPATH

2022-09-01 18:41:46

我已经在/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. 的 couse 我做了 .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================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

package a;

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

/etc/profile part.left 部分是默认的。

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 javaprints “/usr/java/bin”.有符号链接。
  • 我的jdk位置是/usr/java/jdk1.7.0_21。在./bin中,每个代码都可以正常工作。
  • 我没有触摸/root/.bash_profile。我刚刚编辑了/etc/profile。

感谢您的关注。即使它没有弄清楚。你的帮助对我有很大的治愈:D再次感谢。


答案 1

在这里搜索 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)。

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

$> source java.sh

答案 2

指示:

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

在 centos 中设置java_home


推荐