package pack;
public class sample{
public static void main(String input[])
{
NumberFormat numberFormat = new DecimalFormat("#,##0.00##");
System.out.println(numberFormat.format(44533125.00));
}
}
代码在当前目录中运行良好.. (c:/myprogram/)。
之后我复制 sample.class 文件并将其粘贴到其他目录 (d:/myprogram)。 我在运行时出错,比如
Exception in thread "main" java.lang.NoClassDefFoundError: sample (wrong name: pack/sample)
在 java 中,.class 文件可以在任何地方运行,对吧?但是为什么我跑不了?
最佳答案
您应该在包中包含类文件 - 因此它应该位于名为 pack
的目录中。然后使用类路径中的父目录运行
java pack.sample
(您还应该将类名称更改为 Sample 以遵循约定,顺便说一句 - 然后运行 pack.Sample
。)
如果您使用 javac 进行构建,请指定“-d”选项以告知其基本目录,如果需要,它将创建适当的包结构。例如:
javac -d classes Sample.java
或
javac -d classes src/pack/Sample.java
将(在两种情况下)创建
classes/pack/Sample.class
然后你可以运行
java -cp classes pack.Sample
关于java - 线程 "main"java.lang.NoClassDefFoundError 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2506749/