在CentOS 6中设置JAVA_HOME和CLASSPATH

我在/ 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我命令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再次感谢。

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

 a! 

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

说明:

  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”以确保正确设置路径。

在centos中设置java_home

看来你对环境变量没有任何问题。

用src编译你的文件

javac a/A.java

然后,运行您的程序

java aA

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

执行以下步骤:

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

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

注 – 我使用CentOS7作为操作系统。