我已经在/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。
7条答案
按热度按时间qlvxas9a1#
在here中搜索centos jre install所有用户:
java.sh
的新文件java.sh
中加载环境变量而无需重新启动机器,您可以使用source命令,如下所示:*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
rbl8hiat3#
我在/home/prasanth中创建了一个名为a的文件夹,并将代码复制到名为A.java的文件中。我从/home/prasanth编译为
javac a/A.java
,并运行javac a.A
。uinbv5nw4#
看起来你对环境变量没有任何问题。
使用以下命令从src编译文件
第一个月
然后,将程序运行为
java a.A
yeotifhr5#
我必须更改/etc/profile. d/java_env. sh以指向新路径,然后注销/登录。
bprjcwpo6#
执行以下步骤:
1.须藤
1.安装java-1.8.0-打开jdk-开发
导出JAVA_HOME=/usr/库/jvm/java-1.8.0-打开的jdk-1.8.0.171-8.b10.el7_5.x86_64/
注意-我使用CentOS7作为操作系统。
uttx8gqw7#
如果
javac
是通过/etc/alternatives/javac
设置的,则可以将以下内容添加到.bash_profile: