在CentOS 6中设置JAVA_HOME和CLASSPATH

ukxgm1gy  于 2022-12-23  发布在  Java
关注(0)|答案(7)|浏览(212)

我已经在/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检查了类路径、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,在这种情况下我能做什么?
当然,我做了source /etc/profile
=================我所面临的错误=====================
当我命令java A时(我的类名是A)。

Error: Could not find or load main class A

用例I命令java -cp /主/访客/工作区/AAA/源/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 part.左侧部分为默认值。

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。
qlvxas9a

qlvxas9a1#

here中搜索centos jre install所有用户:

  • 在CentOS中设置环境变量的最简单方法是使用export,如下所示 *
$> 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
  • 现在,当您重新启动计算机时,www.example.com中的环境变量java.sh将自动初始化(如果您想知道/etc/profile.d/中的文件是如何加载的,请查看/etc/profile)。*
  • PS:如果您想在java.sh中加载环境变量而无需重新启动机器,您可以使用source命令,如下所示:*
$> source java.sh
8mmmxcuj

8mmmxcuj2#

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

rbl8hiat

rbl8hiat3#

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

a!
uinbv5nw

uinbv5nw4#

看起来你对环境变量没有任何问题。
使用以下命令从src编译文件
第一个月
然后,将程序运行为
java a.A

yeotifhr

yeotifhr5#

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

bprjcwpo

bprjcwpo6#

执行以下步骤:

1.须藤
1.安装java-1.8.0-打开jdk-开发

  1. vi .bash_profile,并将下面的行添加到.bash_profile文件中并保存该文件。
    导出JAVA_HOME=/usr/库/jvm/java-1.8.0-打开的jdk-1.8.0.171-8.b10.el7_5.x86_64/
    注意-我使用CentOS7作为操作系统。
uttx8gqw

uttx8gqw7#

如果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

相关问题