我使用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文件是什么,无济于事。 (也读到某处。)
这是一个概述目录结构的屏幕截图:
我想要的就是能够将这些已编译的.class文件与我的代码一起使用。似乎是如此简单,所以我必须错过一些非常愚蠢的东西。有什么想法吗?
答案 0 :(得分:0)
答案很简单:.class
文件不是外部库。
您可以使用jar.exe
Java工具将“ClassesArchive”导出到.jar文件。
答案 1 :(得分:0)
文件名和公共类名应该相同。根据我的观点,这是一个名称问题。