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


228

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

java -jar helloworld.jar

Це прекрасно працює, але як же його виконати подвійним клацанням? Чи потрібно мені встановлювати якесь програмне забезпечення?


Відповіді:


123

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

Або це:

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

Що було вкрадено звідси: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html


13
Я думаю, що найпростішим способом є клацання правою кнопкою миші на будь-якому, jar-файлі> відкрити і вибрав "середовище виконання Java". :)
Кассем

роблячи це, завжди видає мені цю помилку "Бінарна платформа Java SE перестала працювати" ... Чи може хто-небудь допомогти, в чому може бути проблема?
Faizan

1
@Faizan - Ваша проблема звучить як окрема проблема. Я бачу кілька результатів SO та Google для "Бінарна платформа SE на платформі перестала працювати". Я б це перевірив.
Брайан Келлі

26
немає вкладки "Типи файлів" у "Параметри папок" у програмі win 7
Radu Simionescu

79

У Windows Vista або Windows 7 редактор асоціацій з файлами вручну видалено.

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


Дякую за підказку, якби тільки був спосіб позбутися цих маленьких (не) "зручних" нових коробок
LoG

55

Якщо вам потрібно розповсюдити свій .jar файл і зробити його доступним на інших комп'ютерах Windows, ви можете створити простий .bat файл у цьому командному рядку:

java -jar MyJavaTool.jar

і розмістіть .bat файл у тому самому каталозі, що і ваш .jar файл.


Але як виконується .bat? Це буде та ж стратегія, щоб програма Java також відкрила сесію командного рядка?
Ungeheuer

1
Ну ні, ви просто відкриєте файл bat. Я не впевнений, що розумію ваше запитання.

26

Якщо у вас є файл jar під назвою Example.jar, дотримуйтесь цих правил:

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

4
1) Це не працює на Mac. або Unix. 2) Створюється непотрібний файл. 3) Кращі відповіді були надані понад 2 роки тому. 4) ..А це слово - "ти".
Ендрю Томпсон

Чудовий спосіб запустити банку в Windows! Він також не приховує введення командного рядка, тому я зміг зрозуміти, чому мій jar не працює так, як я вважав, що повинен. Дякую.
Джо

15

Цікавий побічний ефект цього викликає проблему при запуску запущених файлів 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

в командному рядку, і тепер він буде працювати!

EDIT: (Однак ви отримуєте чорне вікно консолі, коли запускаєте додаток Java на основі форми (не консоль), тож це не ідеальне рішення)

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

Для того, щоб передати параметр у Windows, ви повинні створити ярлик до файлу jar, який містить параметр у цільовому рядку (клацніть правою кнопкою миші на ярлику та виберіть властивості), ви не можете додавати параметри до самого піктограми файлу jar у цьому шлях.

Тут немає єдиного, послідовного рішення, але у вас була б однакова проблема з будь-яким іншим консольним додатком.

Існує безкоштовна програма для Windows під назвою "bat to exe", яку ви можете використовувати для створення файлу exe з файлу .bat з відповідним командним рядком. Ви також можете вставити файл jar у програму exe за допомогою цього додатка та змусити його очистити його після завершення роботи, тому це може бути більш елегантним рішенням.


11

Перший встановлений шлях на cmd (командний рядок):

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

потім введіть

java -jar yourProgramname.jar 

9

У Windows XP * вам потрібно всього дві команди оболонки :

   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


1
Анонімний користувач перевірив це в Windows 7 (JRE 7). Кажуть, це працює, якщо ви запустите cmd як адміністратор.
Джеремі Штейн

Найкраще рішення в моїх очах. Працює до Windows 10. Команди ftype та assoc повинні виконуватись у вікнах командного рядка з правами адміністратора.
SixDoubleFiveTreeTwoOne

7

Існує спосіб, не вимагаючи від користувача змін на своєму ПК. 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
    }
}

6

Окрім усіх інших пропозицій, є ще одне, що потрібно врахувати. Ваш helloworld.jar - консольна програма? Якщо це так, то я не вірю, що ви зможете перетворити його у файл з баночкою із подвійним клацанням. Консольні програми використовують звичайне вікно оболонки cmd.exe для їх введення та виводу. Зазвичай jar "launcher" пов'язаний з javaw.exe, що не створює вікно командної оболонки.



4

У regedit, відкрити HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

Двічі клацніть за замовчуванням зліва та додайте -jar між java.exeконтуром та %1аргументом " ".


Це було все. Дякую. Усі інші речі не допомогли.
raedma

3

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

Інша річ: якщо щось не плутати, воно все одно має працювати; перевірте і переконайтеся, що у вас java пов'язана з розширенням .jar.


1

На жаль, це не так просто, оскільки 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 , згаданий у цій темі, швидше за все, робить не більше ніж модифікацію реєстру для вас. Я віддаю перевагу ручному методу зміни реєстру, оскільки це означає, що системний адміністратор може "натиснути" зміну реєстру на всі робочі станції в мережі.

1

У мене була така ж проблема в Windows 10. Я виправив її за допомогою правого клацання на " helloworld.jar ", перейдіть до властивостей і натисніть кнопку зміни в розділі "Відкривається з:" і виберіть " Шукати інший додаток на цьому ПК ". У діалоговому вікні " Відкрити з ... " перейдіть до свого папки Java на вашому ПК та відкрийте відповідну папку jdk, а потім відкрийте папку бін та виберіть звідти " javaw.exe ". Тоді наступного разу ваш " helloworld.jar" " відкриє звичайний шлях.

Звичайний приклад розташування Java: " C: \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ".


1

Ще один спосіб запустити файли jar з клацанням / подвійним клацанням миші - це додати ім'я файлу "-jar". Наприклад, ви б перейменували файл MyJar.jarу -jar MyJar.jar.

У вас , звичайно, повинні бути .classпов'язані файли java.exe. Це може працювати не у всіх випадках, але для мене це працювало більшість разів.


1

PreScript : Якщо ваше запит з'являється і негайно зникає, причиною цього є те, що ваша програма виконується і автоматично закривається. Спробуйте поставити сканер в кінці, щоб він припинився, і він змусить вас чекати введення даних перед тим, як закінчити. (Або використовувати затримку, можливо)

Був у тій самій ситуації, коли запуск .jar від cmd працював нормально, але подвійне клацання нічого не робило.

Рішення: Відкрийте будь-який текстовий редактор і введіть командний рядок: java -jar Example.jar Збережіть файл у форматі .bat. Запустіть цей файл bat, щоб отримати необхідний вихід.

Зробивши його на крок вперед, ви можете конвертувати цей файл bat в EXE-файл, використовуючи простий інструмент GUI, такий як Bat To Exe Converter.

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

Я досить новачок у розвитку та багато навчаюсь. Прошу вибачення за будь-які помилки, якщо вони допущені. Пропозиції вітаються.


1

використовувати .batфайл:

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

Збережіть його та двічі клацніть на файлі bat, щоб запустити вашу банку. Ім'я вашого файлу буде чимось на зразокfileName.bat


0

Якщо ви використовуєте eclipse для створення ваших файлів Java, ви можете експортувати його у вигляді файлу jar. Я зробив це зі своїми програмами, і я можу просто натиснути на банку, і вона запуститься просто так. Це буде працювати на обох вікнах, а також на OS x.


Здається, це не гарантовано працює, але відповідно до цього питання
подвійнеDown

0

Створити start.bat було єдиним, що працювало для мене.

відкрити текстовий документ і ввести. java -jar все, що твоє називається .jar

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


0

Якщо вам потрібно запустити файл jar, двічі клацнувши на ньому, вам доведеться створити його як " Runnable JAR ". Ви можете це зробити просто за допомогою IDE.

Якщо ви використовуєте затемнення, виконайте наступні дії:

    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


0

Існує багато методів запуску .jar-файлу на Windows. Один з них використовує командний рядок.

Кроки:

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


0

Створити .batфайл:

start javaw -jar %*

І виберіть програму за замовчуванням, щоб відкрити .jarцей .batфайл.

Він закриється cmdпри запуску .jarфайлу.


0

Для складання:

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

Власне, і я зіткнувся з цією проблемою, і зіткнувся з нею, зробивши .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" - це клас Main

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.