ClassNotFound Ошибка при компиляции нескольких классов объектов - PullRequest
1 голос
/ 30 ноября 2011

У меня есть класс 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) Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

Похоже, ваши классы находятся в пакете oopinterface. Скомпилируйте исходные файлы из базовой директории пакета, например:

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

Если у вас установлена ​​переменная окружения CLASSPATH, убедитесь, что она не задана, или добавьте базовый каталог пакета, в котором можно найти скомпилированные файлы классов в classpath. Вы также можете использовать опцию -cp или -classpath, чтобы указать javac, где искать скомпилированные файлы классов.

У всех ваших исходных файлов есть package oopinterface; вверху файла?

После компиляции, чтобы запустить программу из командной строки, сделайте что-то вроде этого:

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

где MainClass - это класс, содержащий метод public static void main(String[] args). (Это предполагает, что ваши скомпилированные файлы классов находятся в том же каталоге, что и исходные коды).

1 голос
/ 30 ноября 2011

Вам необходимо установить путь к классу, чтобы он указывал на каталог, в котором находятся ваши классы, чтобы команды компилятора и интерпретатора могли его найти. Это выглядит так: javac -classpath C: \ Users \ Liloka \ Source \ oopinterface ContainerInterface.java

1 голос
/ 30 ноября 2011

Вы должны скомпилировать все свои классы одновременно, так как они все ссылаются на себя.перейдите в исходный каталог и запустите

javac oopinterface\*.java
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...