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

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

java -jar helloworld.jar

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

26 ответов

Решение

Самый простой путь - это обновление или переустановка Java Runtime Environment (JRE).

Или это:

  • Откройте проводник Windows, в меню "Инструменты" выберите "Параметры папки..."
  • Перейдите на вкладку "Типы файлов", прокрутите вниз и выберите "Тип файла JAR".
  • Нажмите кнопку Дополнительно.
  • В диалоговом окне "Редактировать тип файла" выберите "Открыть" в поле "Действия" и нажмите "Изменить".
  • Нажмите кнопку "Обзор" и перейдите к местоположению интерпретатора Java javaw.exe.
  • В приложении, используемом для выполнения действия поля, необходимо отобразить что-то похожее на C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" % (Примечание: часть, начинающаяся с 'javaw', должна быть точно такой же; другая часть имени пути может отличаться в зависимости от используемой версии Java), затем нажимайте кнопки OK, пока все диалоги не будут закрыты.

Который был украден здесь: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html

В Windows Vista или Windows 7 ручной редактор сопоставления файлов был удален.

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

Если вам нужно распространить файл.jar и сделать его работоспособным на компьютерах Windows других людей, вы можете создать простой.bat-файл, например, в командной строке:

java -jar MyJavaTool.jar

и поместите файл.bat в тот же каталог, что и ваш файл.jar.

Если у вас есть файл jar с именем Example.jar, следуйте этим правилам:

  1. Открыть notepad.exe
  2. Написать: java -jar Example.jar
  3. Сохраните это с расширением .bat
  4. Скопируйте его в каталог, который имеет .jar файл
  5. Дважды щелкните по нему, чтобы запустить .jar файл

Интересный побочный эффект этого вызывает проблему при запуске запускаемых jar-файлов в командной строке.

Если вы попробуете (в командной строке)

параметр jarfile.jar

Нет радости, потому что это переводится на следующее (это не работает):

javaw.exe -jar параметр jarfile.jar

однако следующая команда работает:

java.exe -jar параметр jarfile.jar

Если вы измените связь в файловом менеджере, как описано выше:

"C: \ Program Files \ Java \ j2re1.4.2_04 \ bin \ java.exe" -jar "% 1"% *

затем вы можете набрать:

параметр jarfile.jar

в командной строке и теперь он будет работать! РЕДАКТИРОВАТЬ:(Однако вы получите черное окно консоли при запуске Java-приложения, основанного на форме (не консоли), так что это не идеальное решение)

Если вы запустите эти jar-файлы, дважды щелкнув их в окнах, параметры не будут переданы, поэтому ваш Java-код должен обрабатывать исключение переполнения стека и включать функцию "нажать клавишу" в конце, иначе окно просто исчезнет.

Чтобы передать параметр в окнах, вы должны создать ярлык для файла JAR, который включает в себя параметр в целевой строке (щелкните правой кнопкой мыши по ярлыку и выберите свойства), вы не можете добавлять параметры к самому значку файла JAR в этом путь.

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

Существует бесплатное приложение для Windows под названием "bat to exe", которое можно использовать для создания exe-файла из.bat-файла с соответствующей командной строкой в ​​нем. Вы также можете вставить jar-файл в исполняемый файл с этим приложением и заставить его очистить его после завершения работы, так что это может быть более элегантным решением.

Сначала установите путь к cmd(командная строка):

set path="C:\Program Files\Java\jre6\bin"

затем введите

java -jar yourProgramname.jar 

В Windows XP * вам нужно всего 2 команды оболочки:

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

очевидно, используя правильный путь для JRE и любое имя, которое вы хотите вместо myjarfile,

Чтобы просто проверить текущие настройки:

   C:\>assoc .jar  
   C:\>ftype jarfile  

на этот раз, используя значение, возвращаемое первой командой, если она есть, вместо jarfile,

* не тестировался с Windows 7

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

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

Есть способ, не требуя от пользователя вносить изменения на своем ПК. Runtime.getRuntime.exec() позволяет нам запускать cmd.exe и выполнять команды внутри него. Таким образом, Java-программа может запускать себя в командной строке, когда пользователь щелкает файл.jar.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}

Помимо всех других предложений, есть еще одна вещь, которую вы должны рассмотреть. Является ли ваш helloworld.jar консольной программой? Если это так, то я не верю, что вы сможете превратить его в файл jar с двойным кликом. Консольные программы используют обычное окно оболочки cmd.exe для ввода и вывода. Обычно jar "launcher" привязан к javaw.exe, который не создает окно командной оболочки.

Я использую Windows 7 x64 и не смог использовать ни одно из этих исправлений.

Этот работал для меня в конце концов:

http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi

Существует архив, который вы можете скачать, содержащий файл.bat для запуска, но проверьте путь к самому javaw.exe!!!!

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

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

Та же проблема в Windows 10
Решение:

  1. Проверьте свои JAVA_HOME и JAVA_PATH.
    https://javatutorial.net/set-java-home-windows-10
  2. Используйте Jarfix, чтобы восстановить связь между .jar а также javaw.exe
    https://johann.loefflmann.net/en/software/jarfix/index.html

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

start javaw -jar %*

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

Оно закроется cmd когда начать свой .jar файл.

К сожалению, это не так просто, поскольку 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, упомянутая в этой теме, скорее всего, не делает для вас ничего, кроме изменения реестра. Я предпочитаю метод ручного изменения реестра, так как это означает, что системный администратор может "протолкнуть" изменение реестра на все рабочие станции в сети.

использовать .bat файл:

Поместите свою команду в файл.bat. здесь ваша команда будетjava -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

Сохраните его и дважды щелкните файл bat, чтобы запустить jar. Имя вашего файла будет примерно такимfileName.bat

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

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

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

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

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

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

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

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

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

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

Создание start.bat было единственной вещью, которая работала для меня.

откройте текстовый документ и введите. java -jar все, что твое называется.jar

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

Для составления:

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

Существует много способов запуска файла.jar в Windows. Один из них использует командную строку.

Шаги:

  1. Открыть командную строку (Запуск от имени администратора)
  2. Теперь напишите команду "cd\" для корневого каталога
  3. Введите "java jar filename.jar" Примечание: вы также можете использовать любые сторонние приложения, такие как WinRAR, jarfix и т. Д.

На самом деле, я тоже столкнулся с этой проблемой, я справился с этим, сделав.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" - это основной класс.

Шаги:

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

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

Если вам нужно запустить файл JAR, дважды щелкнув по нему, вы должны создать его как " Runnable JAR ". Вы можете сделать это просто с помощью вашей IDE.

Если вы используете Eclipse, выполните следующие действия:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

Дополнительную информацию можно найти на странице справки Eclipse: LINK

Если вы используете eclipse для создания ваших java-файлов, вы можете экспортировать его как исполняемый jar-файл. Я сделал это с моими программами, и я могу просто нажать на банку, и она будет работать так же, как это. Это будет работать на обоих окнах, а также OS X.

Другие вопросы по тегам