在 Java 中获取 NoClassDefFoundError
Getting NoClassDefFoundError in Java
我正在 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中,编译时和运行ning时都需要指定class路径。所以当你用
编译时
javac -cp c:\Java Test.java
您正在当前目录中编译测试 class,使用 c:\Java 作为额外的 class 路径参数。
当你想运行测试class时,你需要告诉Java在哪里可以找到它自己的class(在当前目录中)而且需要 classes。如果你只是 运行
java Test
Java 将使用当前文件夹作为唯一的 class 路径,因此不会找到已在 C:\[=25 中编译的引用的 class =].因此你需要指定
java -cp "C:\Java;." Test
指明在哪里可以找到所有必需的 classes。
我正在 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中,编译时和运行ning时都需要指定class路径。所以当你用
编译时javac -cp c:\Java Test.java
您正在当前目录中编译测试 class,使用 c:\Java 作为额外的 class 路径参数。
当你想运行测试class时,你需要告诉Java在哪里可以找到它自己的class(在当前目录中)而且需要 classes。如果你只是 运行
java Test
Java 将使用当前文件夹作为唯一的 class 路径,因此不会找到已在 C:\[=25 中编译的引用的 class =].因此你需要指定
java -cp "C:\Java;." Test
指明在哪里可以找到所有必需的 classes。