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

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

java -jar helloworld.jar

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

Выполните шаги, описанные здесь: Запуск Jar в Vista двойным щелчком

RealHowTo 27.12.2008 18:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
249
1
1 301 645
25
Перейти к ответу Данный вопрос помечен как решенный

Ответы 25

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

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

Ответ принят как подходящий

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

Или это:

  • Откройте проводник Windows, в меню «Инструменты» выберите «Параметры папки ...».
  • Щелкните вкладку Типы файлов, прокрутите вниз и выберите Тип файла JAR.
  • Нажмите кнопку Advanced.
  • В диалоговом окне «Изменить тип файла» выберите «Открыть в поле« Действия »и нажмите« Изменить ... ».
  • Нажмите кнопку «Обзор» и перейдите в папку с интерпретатором 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

Я думаю, что самый простой способ - это щелкнуть правой кнопкой мыши любой файл jar> открыть с помощью и выбрать «Среда выполнения Java». :)

Kassem 01.11.2012 20:37

при этом мне всегда выдается сообщение об ошибке «Двоичный код платформы Java SE перестал работать» ... Кто-нибудь может помочь, в чем может быть проблема?

Faizan 05.03.2013 17:32

@Faizan - Ваша проблема звучит как отдельная проблема. Я вижу несколько результатов SO и Google по запросу «Двоичный код платформы Java SE перестал работать». Я бы проверил их.

Brian Kelly 05.03.2013 20:44

в Win 7 нет вкладки Типы файлов в параметрах папки

Radu Simionescu 02.12.2013 16:44

то же самое с Win 10. Это было перемещено куда-то с той же функциональностью? страница «Приложение по умолчанию по типу файла» системы Windows 10, похоже, не позволяет редактировать команду выполнения, чтобы добавить параметр «jar»

Nick J 19.12.2020 22:27

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

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

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

jarfile.jar parameter

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

javaw.exe -jar jarfile.jar parameter

Однако следующая команда действительно работает:

java.exe -jar jarfile.jar parameter

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

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

Затем вы можете ввести:

jarfile.jar parameter

в командной строке, и теперь он будет работать!

Обновлено: (Однако затем вы получаете черное окно консоли при запуске приложения Java на основе формы (не консольного), поэтому это не идеальное решение)

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

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

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

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

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

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

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

Nick J 19.12.2020 22:29

В 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

Анонимный пользователь протестировал это с Windows 7 (JRE 7). Говорят, работает, если запускать cmd от имени администратора.

Jeremy Stein 25.06.2012 17:38

Лучшее решение в моих глазах. Работает до Windows 10. Команды ftype и assoc должны запускаться в окнах командной строки с правами администратора.

SixDoubleFiveTreeTwoOne 30.11.2017 11:47

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

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

1) Это не сработает на Mac. или Unix. 2) Создает ненужный файл. 3) Лучшие ответы были предоставлены более 2 лет назад. 4) ..И это слово - «ты».

Andrew Thompson 12.07.2011 01:58

Отличный способ запустить jar в Windows! Он также не скрывает ввод командной строки, поэтому я смог понять, почему мой jar не работает так, как я думал. Спасибо.

Joe 12.04.2016 20:57

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

java -jar MyJavaTool.jar

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

Но как исполняется .bat? Будет ли эта же стратегия заставить приложение Java также открывать сеанс командной строки?

Ungeheuer 08.07.2017 04:27

Нет, вы бы просто открыли bat-файл. Я не уверен, что понимаю ваш вопрос.

user9016207 27.01.2018 23:24

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

В конце концов, это сработало для меня:

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

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

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

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

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

java -jar yourProgramname.jar 

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

Похоже, что работа не гарантирована, согласно этому вопрос

doubleDown 13.08.2013 03:47

Есть способ не требовать от пользователя вносить изменения на своем ПК. 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
    }
}

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

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

Это было оно. Спасибо. Все остальное не помогло.

raedma 27.04.2017 16:34

Создание start.bat было единственным, что у меня сработало.

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

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

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

Чтобы исправить открытие файла .jar в Windows, нужно выполнить два шага.

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

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

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

Если вам нужно запустить jar-файл, дважды щелкнув по нему, вы должны создать его как «Запускаемый 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: ССЫЛКА НА САЙТ

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

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

Не работает на моем Win10. Также нет Java / JDK, только папки Java / JRE

wilkas 02.02.2021 12:28

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

Шаги:

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

use .bat file:

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

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

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

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

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

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

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

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

Шаги:

1.) найдите Java SE Runtime Environment в Google: https://www.google.com/search?q=Java+SE+Runtime+Environment

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

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

start javaw -jar %*

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

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

Это единственный правильный ответ для запуска jar-файла по щелчку для java 11. Но вам нужно сделать однажды немного больше: удалите нижние jdks (необязательно), щелкните правой кнопкой мыши файл jar-> открыть с помощью-> выберите другое приложение-> установите флажок «всегда использовать ... »-> приложения на этом компьютере (или таком) -> перейдите к летучей мыши- > запуск

CodeToLife 09.11.2020 09:58

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

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

Собственно, я тоже столкнулся с этой проблемой, Я обошелся с этим, сделав .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. this code (my code) works only with a jar file, not a class file.

  2. the jar file must have the same name as the String "jarName" is the Main class

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