Ошибка class not found

168
22 ноября 2018, 04:00

При компиляции кода в IntelliJ IDEA всё работает отлично, но как только вывожу .jar и пытаюсь запустить его, пишет ошибку:

import java.util.Scanner;
public class General {
    public static int KM = 0;
    public static void main (String[] agrs){
        System.out.println("Добро пожаловать, Екатерина. \nЧто вас интересует? \n1 - Посмотреть данные \n2 - Внести данные");
        Scanner scan1 = new Scanner(System.in);
        Scanner scan4 = new Scanner(System.in);
        int select1 = scan1.nextInt();
        if (select1 == 1) {
            ViewSelect();
        } else if (select1 == 2) {
            ChangSelect();
        }
        if (select1 != 1 || select1 != 2) {
            while (select1 != 1 || select1 != 2){
                System.out.println("Вы ввели неверное число, попробуйте снова");
                select1 = scan4.nextInt();
                if (select1 == 1) {
                    ViewSelect();
                    break;
                }
                if (select1 == 2) {
                    ChangSelect();
                    break;
                }
            }
        }
    }
    public static void ViewSelect() {
        System.out.println("Ваш суммарный метраж - " + KM + " метров");
        WelcomeAgain();
    }
    public static void ChangSelect() {
        System.out.println("Какое количество метров сегодня вы прошли?");
        Scanner scan3 = new Scanner(System.in);
        int select3 = scan3.nextInt();
        KM = KM + select3;
        System.out.println("Данные успешно внесены, ваш суммарны метраж - " + KM + " метров");
        WelcomeAgain();
    }
    public static void WelcomeAgain() {
        System.out.println("Желаете что-то ещё, Екатерина?.\n1 - Посмотреть данные \n2 - Внести данные");
        Scanner scan2 = new Scanner(System.in);
        int select2 = scan2.nextInt();
        if (select2 == 1) {
            ViewSelect();
        } else if (select2 == 2) {
            ChangSelect();
        }
        if (select2 != 1 || select2 != 2) {
            while (select2 != 1 || select2 != 2){
                System.out.println("Вы ввели неверное число, попробуйте снова");
                select2 = scan2.nextInt();
                if (select2 == 1) {
                    ViewSelect();
                    break;
                }
                if (select2 == 2) {
                    ChangSelect();
                    break;
                }
            }
        }
    }
}

Вот что прописано в MANIFEST:

Manifest-Version: 1.0
Main-Class: General
Answer 1

В файле META-INF/MANIFEST.MF пропишите строку:

Main-Class: com.example.Main

Более подробно про создание точки входа в программу можно почитать здесь.

То есть главный класс который указан должен содержать главный метод

public static void main(String[] args)

По вашей ошибке видно что программа не может найти класс, который указан в манифесте и поэтому возникает ClassNotFoundException.

Answer 2

Создайте новый проект. Скопируйте Ваш код в него. Проделайте все этапы заново.

META-INF/MANIFEST.MF должен быть такой:

Manifest-Version: 1.0
Main-Class: General

Убедитесь что Вы запускаете jar файл так (только ж адресс к файлу свой укажите):

java -jar D:\Test1.jar

При указанных параметрах у меня все запускается.

P.S. IntelliJ IDEA - не фреймворк, а интегрированная среда разработки. На будущее рекомендую изучить одну из систем сборки (например, Maven).

READ ALSO
Java, массив и двойной цикл for

Java, массив и двойной цикл for

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

159
Как получить картинку их аудиофайла в java?

Как получить картинку их аудиофайла в java?

Хочу сделать плеер и вот пытаюсь выловить картинку из mp3 файлаПытался установить mp3agic и с помощью него извлечь, но при установки вылезают...

164
Не могу прервать выполнение Phantomjs в Java

Не могу прервать выполнение Phantomjs в Java

У меня есть интерфейс в котором есть кнопка старт, она запускает Phantomjs, но в момент запуска, интерфейс становиться недоступным, до тех пор...

151
Сервлеты java. Выбор DAO в рантайме

Сервлеты java. Выбор DAO в рантайме

Есть web приложениеПри входе попадаем на страницу логина, логику самого приложения опустим

142