главный класс не может быть найден или загружен, даже если есть метод main - PullRequest
0 голосов
/ 04 мая 2019

У меня есть два класса ChatClient и Listener, и я хочу их скомпилировать и запустить. В затмении он работает нормально, но на терминале я не могу его запустить. Оба класса находятся на пути: /Desktop/java/task4. Возможно, я должен упомянуть, что внутри класса ChatClient создается объект Listener.


Я компилирую два класса с помощью команды: javac *.java и получаю 2 созданных класса. Но если я наберу java ChatClient, я получу ошибку main class could not be found or loaded. Что я делаю неправильно? Я использую Ubuntu. И да, есть main метод внутри ChatClient

public class Listen extends Thread {
Socket s;
Scanner msg;

public Listen(Socket s) {
    ....

}

public class Chatter {


public static void main(String[] args) {
    try {
        ...
        Listener lt = new Listener(s);
        ...
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Очевидная проблема в том, что ваш класс находится в пакете (UE3), но вы не использовали полное имя класса. Попробуйте:

java UE3.ChatClient

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

(Обратите внимание, что для имен пакетов используется только строчная буква. Кроме того, вместо расширения Thread вы обычно должны передавать Runnable в качестве лямбды или ссылки на метод.)

0 голосов
/ 04 мая 2019

Существует множество возможностей получить эту ошибку при запуске из cmd.Поскольку IDE будет делать много вещей, связанных с путем к классам на заднем плане.

Наибольшая вероятность получить эту ошибку - новички не будут знать о предоставлении полной структуры пакета во время работы с использованием `java cmd` из правильного каталога classpath.Пожалуйста, перейдите по этой ссылке для получения дополнительной информации.

...