Как запустить JAR файл

Я создал JAR файл следующим образом:

jar cf Predit.jar *.*

Я запустил этот JAR файл, дважды щелкнув по нему (это не сработало). Поэтому я запускал его из подсказки DOS следующим образом:

java -jar Predit.jar

Он поднял исключения "Не удалось загрузить основной класс". Поэтому я извлек этот файл JAR:

jar -xf Predit.jar

и я запустил файл класса:

java Predit

Это сработало. Я не знаю, почему файл JAR не работал. Скажите, пожалуйста, шаги для запуска файла JAR.

Ответ 1

Вам нужно указать Main-Class в манифесте jar файла.

Oracle tutorial содержит полную демонстрацию, но здесь еще один с нуля. Вам нужны два файла:

Test.java:

public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hello world");
    }
}

manifest.mf:

Manifest-version: 1.0
Main-Class: Test

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

Затем запустите:

javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar

Вывод:

Hello world

Ответ 2

java -classpath Predit.jar your.package.name.MainClass

Ответ 3

перед запуском проверки jar Main-Class: имя класса доступно или нет в файле MANIFEST.MF. MANIFEST.MF присутствует в банке.

java -jar filename.jar

Ответ 4

Вам нужно добавить манифест в jar, который сообщает java runtime, что такое основной класс. Создайте файл "Manifest.mf" со следующим содержимым:

Manifest-Version: 1.0
Main-Class: your.programs.MainClass

Измените 'your.programs.MainClass' на ваш основной класс. Теперь поместите файл в Jar файл в подпапку с именем "META-INF". Вы можете использовать любую ZIP-утилиту для этого.

Ответ 5

Если вы не хотите создавать манифест только для запуска файла jar, вы можете ссылаться на основной класс непосредственно из командной строки при запуске файла jar.

java -jar Predit.jar -classpath your.package.name.Test

Указывает, какой основной класс должен запускаться в файле jar.

Ответ 6

Очень простой подход для создания файла .class,.jar.

Выполнение файла jar. Не нужно слишком беспокоиться о файле манифеста. Сделайте его простым и эластичным.

Пример Java Hello World Program

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Компиляция файла класса

javac HelloWorld.java

Создание файла jar

jar cvfe HelloWorld.jar HelloWorld HelloWorld.class

или

jar cvfe HelloWorld.jar HelloWorld *.class

Запуск файла jar

 java -jar HelloWorld.jar

или

java -cp HelloWorld.jar HelloWorld

Ответ 7

Java

class Hello{
   public static void main(String [] args){
    System.out.println("Hello Shahid");
   }
}

manifest.mf

Manifest-version: 1.0
Main-Class: Hello

В командной строке:

$ jar cfm HelloMss.jar  manifest.mf Hello.class 
$ java -jar HelloMss.jar

Выход:

Hello Shahid

Ответ 8

Если вы не хотите иметь дело с этими деталями, вы также можете использовать помощники экспортных контейнеров из Eclipse или NetBeans.

Ответ 9

Eclipse Runnable JAR File

Создайте проект Java - RunnableJAR

  • Если используется jar files, добавьте их в путь сборки проекта.
  • Выберите класс с main() при создании файла Runnable Jar. введите описание изображения здесь

Основной класс

public class RunnableMainClass {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Name : "+args[0]);
        System.out.println(" ID  : "+args[1]);
    }
}

Запустить Jar с помощью java-программы (cmd) путем предоставления аргументов и получения вывода и отображения в консоли eclipse.

public class RunJar { 
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        String jarfile = "D:\\JarLocation\\myRunnable.jar";
        String name = "Yash";
        String id = "777";

        try { // jarname arguments has to be saperated by spaces
            Process process = Runtime.getRuntime().exec("cmd.exe start /C java -jar "+jarfile+" "+name+" "+id);
                    //.exec("cmd.exe /C start dir java -jar "+jarfile+" "+name+" "+id+" dir");
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
            String line = null;
            while ((line = br.readLine()) != null){
                sb.append(line).append("\n");
            }
            System.out.println("Console OUTPUT : \n"+sb.toString());
            process.destroy();
        }catch (Exception e){
            System.err.println(e.getMessage());
        }
   }
}

В Eclipse найдите Короткие сокращения:

Справка ► Содержание справки ► Руководство пользователя по разработке Java ► Ссылки ► Меню и действия

Ответ 10

У меня есть эта структура папок:

D:\JavaProjects\OlivePressApp\ком\Линды\olivepress\Main.class D:\JavaProjects\OlivePressApp\ком\Линды\olivepress\нажмите\OlivePress.class D:\JavaProjects\OlivePressApp\ком\Линды\olivepress\оливки\Kalamata.class D:\JavaProjects\OlivePressApp\ком\Линды\olivepress\оливки\Ligurian.class D:\JavaProjects\OlivePressApp\ком\Линды\olivepress\оливок\Olive.class

Main.class находится в пакете com.lynda.olivepress

Есть еще два пакета:

com.lynda.olivepress.press

com.lynda.olivepress.olive

1) Создайте файл с именем "Manifest.txt" с двумя строками, сначала с основным классом и второй пустой линией.

Main-Class: com.lynda.olivepress.Main

D:\JavaProjects\OlivePressApp\Manifest.txt

2) Создайте JAR с точкой манифеста и главной точкой входа

D:\JavaProjects\OlivePressApp > jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*

3) Запустите JAR

java -jar OlivePressApp.jar

Примечание: com/lynda/olivepress/* означает включение двух других пакетов, упомянутых выше, до пункта 1)

Ответ 11

Чтобы запустить jar, сначала нужно создать

исполняемый фляга

то

java -jar xyz.jar

будет работать