java - 线程 "main"java.lang.NoClassDefFoundError 中的异常

标签 java

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/

相关文章:

java - Spring 实体 bean 未知。使用新的 Spring 3.1 packagesToScan 属性并且没有 persistence.xml

java - Elasticsearch api - @timestamp 的订单聚合

java - JTextField setEnabled 与 setEditable

java - Spring-rabbitmq - 即使在缺乏连接的情况下也启动 spring-boot 服务器

java - 在 DB2 中创建表查询

Java : ReentrantReadWriteLock with priority

java - 我是否忘记了关于模数运算符的一些非常基本的内容?

java - 有没有办法处理 Spring 中自定义异常处理程序内部抛出的异常?

java - 参数中的 NdefRecord.createMime 错误

java - 使用 Jena 列出类和子类的问题