Исполняемый jar-файл Java Eclipse - PullRequest
0 голосов
/ 26 августа 2010

Я новичок в затмении + Java. Я пытаюсь создать исполняемый файл JAR с затмением вариант экспорта. Это работает очень хорошо. Но в моем проекте у меня есть почти 10 пакетов (мои) и 4 основных класса. Я хочу создать исполняемый файл JAR, который может выполнять любой из основных классов из 4 основных классов.

Например: дважды щелкните по названию класса и запустите этот класс

Ответы [ 4 ]

3 голосов
/ 26 августа 2010

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

Из командной строки вызовите любой основной класс, который вы хотите вызвать в качестве аргумента команды java jar.

2 голосов
/ 26 августа 2010

Исполняемые файлы JAR не работают таким образом. Они записывают файл манифеста в JAR, который объявляет, где находится основной класс, и он запускает его. Вам нужно будет создать 4 разных JAR-файла.

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

1 голос
/ 30 декабря 2010

Недавно я написал учебник, в котором показано, как создать исполняемый файл JAR, который будет запускаться с двойным щелчком мыши в Windows, Mac OSX и Linux. Для своего проекта я упаковал красивую библиотечную игру, которую я сделал. Надеюсь, это поможет.

http://aramk.com/blog/2010/12/05/how-to-make-a-multi-platform-executable-java-jar-file/

1 голос
/ 26 августа 2010

Просто краткий пример того, как работать с параметрами командной строки для запуска разных вещей, я бы поместил это в ответ на ответ @ serplat, но тогда я не смогу отформатировать его.

public static void main(String[] args)
{
    if(args.length == 0) {
        // Do default here--no options specified
    } else if(args.length > 2) {
        // Complain that there are too many args, or implement multi-args
    } else // known just one arg
       if(args[1].equals("option1") {
           // call the main of your first app
       } else if(args[1].equals("option2") {
           // start your second app
      ...
   }
}

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

...