Создание простого Java-приложения
Давайте начнем с создания простого Java-приложения, которое мы упакуем в JAR-файл. Это поможет нам продемонстрировать, а затем исправить ошибку 'no main manifest attribute' (отсутствует атрибут main в манифесте).
Создание Java-класса
Сначала создайте каталог для наших исходных файлов Java и перейдите в него:
cd ~/project/src/com/example
Теперь откройте редактор и создайте новый файл с именем HelloWorld.java в этом каталоге:
- Нажмите на значок "Explorer" (проводник) на левой боковой панели WebIDE.
- Перейдите в
/home/labex/project/src/com/example.
- Щелкните правой кнопкой мыши и выберите "New File" (новый файл).
- Назовите файл
HelloWorld.java.
Добавьте следующий код в файл HelloWorld.java:
package com.example;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Это базовая Java-программа с методом main, который выведет "Hello, World!" в консоль при выполнении.
Компиляция Java-класса
Теперь давайте скомпилируем наш Java-класс. Вернитесь в терминал и перейдите в корневой каталог проекта:
cd ~/project
Скомпилируйте Java-файл, используя команду javac:
javac -d . src/com/example/HelloWorld.java
Эта команда компилирует исходный файл Java и помещает скомпилированный файл класса в соответствующую структуру каталогов на основе имени пакета.
Теперь у вас должен быть скомпилированный файл класса в ~/project/com/example/HelloWorld.class. Вы можете проверить это с помощью:
ls -l com/example/
Вывод должен показать файл HelloWorld.class:
total 4
-rw-r--r-- 1 labex labex 426 [date] HelloWorld.class
Создание базового JAR-файла без манифеста
Теперь давайте создадим JAR-файл, не указывая главный класс в манифесте. Это позволит нам воспроизвести ошибку 'no main manifest attribute':
jar cf HelloWorld.jar com/
Эта команда создает JAR-файл с именем HelloWorld.jar, который включает в себя скомпилированный файл класса.
Попытка запуска JAR-файла
Теперь, когда мы создали наш JAR-файл, давайте попробуем его запустить:
java -jar HelloWorld.jar
Вы увидите сообщение об ошибке:
no main manifest attribute, in HelloWorld.jar
Это ошибка, которую мы учимся исправлять. JVM не может найти главный класс для выполнения, потому что мы не указали его в манифесте JAR-файла.