Запуск файла JAR в Windows - PullRequest
       150

Запуск файла JAR в Windows

194 голосов
/ 27 декабря 2008

У меня есть файл JAR с именем helloworld.jar . Чтобы запустить его, я выполняю следующую команду в окне командной строки:

java -jar helloworld.jar

Это отлично работает, но как мне выполнить его двойным щелчком вместо этого? Нужно ли устанавливать какое-либо программное обеспечение?

Ответы [ 25 ]

3 голосов
/ 27 декабря 2008

Вы хотите проверить пару вещей; если это ваш собственный jar-файл, убедитесь, что вы определили Main-класс в манифесте. Поскольку мы знаем, что вы можете запустить его из командной строки, нужно также создать ярлык Windows и изменить свойства (вам придется осмотреться, у меня нет машины с Windows, чтобы посмотреть), команда, которую он выполняет при открытии, является упомянутой вами командой java -jar.

Другое дело: если что-то не запутано, оно должно работать в любом случае; проверьте и убедитесь, что у вас есть Java, связанный с расширением .jar.

2 голосов
/ 25 октября 2013

В Regedit, откройте HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Дважды щелкните по умолчанию слева и добавьте -jar между путем java.exe и аргументом "%1".

1 голос
/ 02 января 2017

У меня была такая же проблема в Windows 10. Я исправил ее с помощью , щелкнув правой кнопкой мыши на " helloworld.jar " и перейдя к properties и нажав на измените кнопку в разделе «Открывается с помощью» и выберите « Найдите другое приложение на этом компьютере ». В диалоговом окне « Открыть с помощью ... » перейдите в папку с папкой Java на вашем ПК, откройте соответствующую папку jdk, а затем откройте папку bin и выберите «». javaw.exe"оттуда. Тогда в следующий раз ваш " helloworld.jar " откроется обычным способом.

Обычный пример расположения Java: " C: \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ".

1 голос
/ 19 сентября 2018

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

Была в той же ситуации, когда запуск .jar из cmd работал нормально, но двойной щелчок ничего не делал.

Решение: Откройте любой текстовый редактор и напишите командную строку: java -jar Example.jar Сохраните файл как файл .bat. Запустите этот bat-файл, чтобы получить необходимый вывод.

Сделав шаг вперед, вы можете преобразовать этот bat-файл в exe-файл, используя простой графический инструмент, такой как Bat To Exe Converter.

Теперь вы можете поделиться своим .jar как дистрибутивом в файле .exe, который может использовать каждый, просто убедитесь, что вы храните все файлы вместе. (Особенно причина в файлах .jar и .bat .bat - это только приглашение cmd) (Как это выглядит логично)

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

1 голос
/ 10 декабря 2014

Другой способ запуска файлов JAR с помощью щелчка / двойного щелчка заключается в добавлении «-jar» к имя файла Например, вы должны переименовать файл MyJar.jar в -jar MyJar.jar.

У вас, конечно, должны быть .class файлы, связанные с java.exe. Это может работать не во всех случаях, но в большинстве случаев это работает для меня.

1 голос
/ 07 ноября 2014

К сожалению, это не так просто, так как Microsoft удалила расширенный диалог ассоциации файлов в последних выпусках Windows. - В более новых версиях Windows вы можете указать только приложение, которое будет использоваться для открытия файла .jar.

Исправление открытия файла .jar в Windows требует двух шагов.

  1. Откройте панель управления и выберите «Программы по умолчанию -> Установить ассоциации». Найдите расширение .jar ( Исполняемый файл JAR ) и выберите Java в качестве программы по умолчанию, чтобы открыть это расширение. Вероятно, он будет указан как « Java Platform (SE) ». Возможно, более быстрой альтернативой является простой щелчок правой кнопкой мыши на файле .jar, а затем измените связанную программу, нажав кнопку «Изменить ...».

  2. Теперь откройте regedit и откройте ключ HKEY_CLASSES_ROOT\jarfile\shell\open\command. К счастью для нас, мы можем указать параметры для значения (Default). В моей системе Windows это выглядит так: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*, но в большинстве случаев это следующая строка: C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

ПРИМЕЧАНИЯ:

  • Не используйте java.exe там, так как это откроет окно оболочки.
  • Инструмент jarfix , упомянутый в этой теме, скорее всего, не делает для вас ничего, кроме изменения реестра. Я предпочитаю метод ручного изменения реестра, так как это означает, что системный администратор может «перенести» изменение реестра на все рабочие станции в сети.
0 голосов
/ 01 июня 2019

На самом деле, я тоже столкнулся с этой проблемой, Я справился с этим, сделав .bat runner для моего файла JAR

вот код:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



Затем в вашем главном классе приложения сделайте это:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


Обратите внимание, что

  1. этот код (мой код) работает только с файлом jar, а не с файлом класса.

  2. файл jar должен иметь то же имя, что и строка. "JarName" - это основной класс

0 голосов
/ 06 мая 2019

Для компиляции:

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

Для бега:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart
0 голосов
/ 15 ноября 2018

Создать .bat файл:

start javaw -jar %*

И выберите приложение по умолчанию, чтобы открыть .jar с этим .bat файлом.

Он закроется cmd при запуске файла .jar.

0 голосов
/ 03 октября 2018

Шаги:

1.) Поиск среды выполнения Java SE в Google: https://www.google.com/search?q=Java+SE+Runtime+Environment

2.) Установите соответствующую версию на свой компьютер

...