我在/ 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。当然我做了qazxsw poi。
=================我面临的错误=======================
当我命令java A(我的类名是A)。
source /etc/profile
case我命令java -cp / home / guest / workspace / AAA / src / a / A.
Error: Could not find or load main class A
=====================我的代码的完整内容======================== ============== java部分。路径是/usr/guest/workspace/AAA/src/a/A.java
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)
/ etc / profile部分。左边部分是默认的。
package a;
public class A {
public static void main(String[] args) {
System.out.println("a!\n");
}
}
其他部分可能有助于解决。
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 / bin”。有符号链接。谢谢你的兴趣。即使它没有想到。你的帮助对我很有帮助:D再次感谢。
我在/ home / prasanth中创建了一个名为a的文件夹,并将您的代码复制到名为A.java的文件中。我从/ home / prasanth编译为which java
并运行javac a/A.java
。我输出为
javac a.A
搜索a!
for centos jre安装所有用户:
在CentOS中设置环境变量的最简单方法是使用导出
here
但是,以这种方式设置的变量是瞬态的,即它们会在您退出shell时消失。显然,在设置即使在系统重新启动时需要持久化的环境变量时,这也没有用。在这种情况下,您需要在系统范围的配置文件中设置变量。在CentOS(我使用的是v5.2)中,建议将文件夹/etc/profile.d/添加到系统配置文件中。例如,在安装Sun JDK时,可能需要设置JAVA_HOME和JRE_HOME环境变量。在这种情况下:创建一个名为$> export JAVA_HOME=/usr/java/jdk.1.5.0_12
$> export PATH=$PATH:$JAVA_HOME
的新文件
java.sh
在此文件中,初始化必要的环境变量
vim /etc/profile.d/java.sh
现在当你重新启动你的机器时,java.sh中的环境变量将被自动初始化(如果你好奇如何加载/etc/profile.d/中的文件,请检查/ etc / profile)。
PS:如果要在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
中加载环境变量而不必重新启动计算机,可以使用source命令,如下所示:
java.sh
说明:
$> source java.sh
以查找Java可执行文件的路径。which java
以成为root用户。su -
以在Vi文本编辑器中打开系统bash_profile文件。您可以使用首选的文本编辑器替换vi。vi /root/.bash_profile
。将export JAVA_HOME=/usr/local/java/
替换为第二步中找到的位置。/usr/local/java
以关闭根会话。exit
以确保正确设置路径。echo $JAVA_HOME
我不得不更改/etc/profile.d/java_env.sh以指向新路径然后注销/登录。
执行以下步骤:
export JAVA_HOME = / usr / lib / jvm / java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64 /
注 - 我使用CentOS7作为操作系统。
提供java a.A
是通过javac
设置的,你可以添加到你的.bash_profile:
/etc/alternatives/javac