gpt4 book ai didi

java - 在 Java 中获取 NoClassDefFoundError

转载 作者:行者123 更新时间:2023-12-01 11:33:02 25 4
gpt4 key购买 nike

我正在学习java中的classpath。我创建了一个名为 Geometry 的包,它存储在 C:\Java\ 中,其中包含一个文件 Point.java,其中包含以下代码

package Geometry;

public class Point
{
double x;
double y;

public Point(double xVal, double yVal)
{
x = xVal;
y = yVal;
}

public Point(final Point oldPoint)
{
x = oldPoint.x;
y = oldPoint.y;
}

void move(double xDelta, double yDelta)
{
x += xDelta;
y += yDelta;
}

double distance(final Point aPoint)
{
return Math.sqrt( Math.pow((x - aPoint.x), 2) + Math.pow((y - aPoint.y), 2) );
}

public String toString()
{
return x + ", " + y;
}

}

然后我在 C:\Users\username\workspace\Test 中创建了另一个文件,名为 Test.java

其中包含以下内容

import Geometry.*;

public class Test
{
public static void main(String[] args)
{
Point l1 = new Point(1,2,3,4);
System.out.println(l1);
}

}

然后使用编译

C:\Users\username\workspace\Test>javac -cp c:\Java Test.java

它编译成功,但在运行时抛出 NoClassDefFoundError 异常错误。有什么问题

最佳答案

(JP Moresmau 和 RC 的评论中给出了答案,将其放在这里以完成)。

在Java中,编译和运行时都需要指定类路径。所以当你编译时

javac -cp c:\Java Test.java

您正在当前目录中编译 Test 类,使用 c:\Java 作为额外的类路径参数。

当你想要运行Test类时,你需要告诉Java在哪里可以找到它自己的类(在当前目录中)以及所需的类。如果你只是运行

java Test

Java 将使用当前文件夹作为唯一的类路径,因此不会找到已在 C:\Java 中编译的引用的类。因此您需要指定

java -cp "C:\Java;." Test

指示在哪里可以找到所有必需的类。

关于java - 在 Java 中获取 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266825/

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