我如何修复"类文件包含错误的类"?

时间:2016-10-01 21:31:49

标签: java intellij-idea

我使用IntelliJ IDEA和JDK 8。

我有一些已编译的Java类,我将它们作为外部库导入,因为我使用的代码使用了这些类中的方法。但是,我似乎无法实际使用这些.class文件。

每当我尝试运行此代码时:

public static int spendOnCokes(int sum, DrinksMachineA mach) {
    int count = 0;
    mach.insert(sum);

    try {
        while (mach.getBalance() >= mach.getPrice()) {
            mach.pressCoke();
            count++;
        }
    } catch (EmptyMachineException e) {
    }

它给了我以下错误:

    Error:(21, 45) java: cannot access com.sanac.DrinksMachineA
  bad class file: /homes/jmcv3/Documents/Java/ClassesArchive/com/sanac/DrinksMachineA.class
    class file contains wrong class: DrinksMachineA
    Please remove or make sure it appears in the correct subdirectory of the classpath.

我已经四处搜索了,有些人似乎暗示它与文件夹层次结构/包名称有关。虽然看起来不错。我也试过切换到JDK 5,因为编译.class文件是什么,无济于事。 (也读到某处。)

这是一个概述目录结构的屏幕截图:

Structure

我想要的就是能够将这些已编译的.class文件与我的代码一起使用。似乎是如此简单,所以我必须错过一些非常愚蠢的东西。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

答案很简单:.class文件不是外部库。

您可以使用jar.exe Java工具将“ClassesArchive”导出到.jar文件。

答案 1 :(得分:0)

文件名和公共类名应该相同。根据我的观点,这是一个名称问题。