gpt4 book ai didi

java - 如何在 LINUX 上设置环境变量 CLASSPATH 和 NoClassDefFoundError

转载 作者:太空宇宙 更新时间:2023-11-04 12:23:42 25 4
gpt4 key购买 nike

我一直在研究类路径并遇到了一个问题。我使用了下面的代码:

class AAA 
{
public AAA()
{
System.out.println("AAA");
}
}
class BBB
{
public BBB()
{
System.out.println("BBB");
}
}
class ABMain
{
public static void main(String[] args)
{
AAA aaa=new AAA();
BBB bbb=new BBB();
}
}

在终端上,我做了:

  1. javac ABMain.java
  2. mkdir 子目录
  3. 设置 CLASSPATH=.:.\sub;
  4. 移动 AAA.class .\sub\AAA.class
  5. 移动 BBB.class .\sub\BBB.class
  6. java ABMain

当我检查子目录时,我发现 AAA.class 和 BBB.class 已正确移动,但是当我尝试运行 ABMain 时,我得到以下信息:

Exception in thread "main" java.lang.NoClassDefFoundError: AAA at ABMain.main(ABMain.java:17) Caused by: java.lang.ClassNotFoundException: AAA at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more

您能否评论一下我应该更改哪些内容才能使其正常工作?提前谢谢你。

最佳答案

根据标题,您使用的是LINUX。但是您的步骤适用于 Windows 生态系统。要更正该示例,您应该使用直接斜杠作为路径分隔符,并将当前目录添加为 CLASSPATH 替代项(以便能够加载主类):

  1. javac ABMain.java
  2. mv AAA.class ./sub/AAA.class
  3. mv BBB.class ./sub/BBB.class
  4. java -cp ./sub:. AB主要

关于java - 如何在 LINUX 上设置环境变量 CLASSPATH 和 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45309470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com