Не удалось найти или загрузить основной класс в Java - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть следующая структура проекта:

JavaTest
    Main
        Main.java
    Test
        Test.java

Main. java:

package Main;
import Test.*;
public class Main {
    public static void main(String[] args) {
    }
}

Test. java:

package Test;
public class Test {
} 

I скомпилируйте их с помощью следующих команд:

D:\Development\Workspace\JavaTest>javac Main\Main.java

D:\Development\Workspace\JavaTest>javac Test\Test.java

Файлы классов расположены следующим образом:

JavaTest
    Main
        Main.java
        Main.class
    Test
        Test.java
        Test.class

Я пытаюсь запустить его с помощью следующей команды:

D:\Development\Workspace\JavaTest>java -cp D:\Development\Workspace\JavaTest\Main;D:\Development\Workspace\JavaTest\Test Main

Я получаю ошибку:

Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: Main/Main (wrong name: Main)

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Сделайте это следующим образом:

javac -d . Main/Main.java
java Main.Main

Примечания:

  1. Текущий каталог представлен как .
  2. Я рекомендую вам следовать соглашению об именовании Java. Согласно соглашению об именах, имя вашего пакета должно быть main. Проверьте https://www.oracle.com/technetwork/java/codeconventions-135099.html для получения более подробной информации.
  3. Используйте команду, javac -help, чтобы узнать больше о параметрах, доступных с javac.
1 голос
/ 01 февраля 2020

добавьте пакет в ваш основной класс и установите для classpath базовый каталог

D:\Development\Workspace\JavaTest>java -cp D:\Development\Workspace\JavaTest Main.Main

Я бы порекомендовал вам придерживаться Java соглашений и использовать только строчные имена в вашем пакете. И вам не нужен тестовый путь для запуска вашего класса

...