编译多个对象类时出现ClassNotFound错误

问题描述 投票:0回答:3

我有一个 Store 类,它是一个 Person 数组;我有一个人、日期、学生、本科生和研究生课程。一切都在 Eclipse 中运行,我必须从命令行运行它。我已经复制了 src 文件并尝试运行主程序,但它只是说它找不到我的任何类。它们都在同一个文件夹中,并且在我分配的每个类中都分配了该包。我查找了导入类并尝试过:

    import oopinterface.Person;

所有课程等。

有什么方法可以编译主程序,以便它能够识别非常清楚的类文件!?我使用的是 Windows,但如果我可以使用 Linux 的“其他”方式,会有帮助吗?

这是编译器错误:

   C:\Users\Liloka\Source\oopinterface>javac ContainerInterface.java
   ContainerInterface.java:41: cannot find symbol
   symbol  : class Store
   location: class oopinterface.ContainerInterface
            Store myList = new Store();

   //Instance of Store
                    ^
   ContainerInterface.java:688: cannot find symbol
   symbol  : class Person
   location: class oopinterface.ContainerInterface
            public Person getSupervisor()
                   ^

..它继续选择其他类中的每个方法..(39)

java class object
3个回答
2
投票

看起来您的课程在包中

oopinterface
。从包的基目录编译源文件,如下所示:

C:\Users\Liloka\Source> javac oopinterface\ContainerInterface.java

如果设置了

CLASSPATH
环境变量,请确保未设置它,或者将编译后的类文件所在的包的基目录添加到类路径中。您还可以使用
-cp
-classpath
选项告诉
javac
在哪里可以找到已编译的类文件。

您的所有源文件的顶部都有

package oopinterface;
吗?

编译后,要从命令行运行程序,请执行以下操作:

java -cp C:\Users\Liloka\Source oopinterface.MainClass

其中

MainClass
是包含
public static void main(String[] args)
方法的类。 (这假设您编译的类文件与源位于同一目录中)。


1
投票

您应该立即编译所有类,因为它们都引用自身。 cd 到源码目录,然后运行

javac oopinterface\*.java

1
投票

您需要将类路径设置为指向类所在的目录,以便编译器和解释器命令可以找到它。 它看起来像: javac -classpath C:\Users\Liloka\Source\oopinterface ContainerInterface.java

© www.soinside.com 2019 - 2024. All rights reserved.