Як запустити файл .jar подвійним клацанням на Windows 7 64-bit?


77

Запуск файлу .jar у командному рядку працює нормально, але я не можу запустити жодного файлу .jar, двічі клацнувши на моєму Windows 7 (64). Здається, після подвійного клацання нічого не відбувається.

Я спробував ftypeпідказку, успіху немає:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

Я переінсталював 64-розрядну версію JDK 7, успіху не було.

Будь-яка ідея?


1
Це звучить , як ви робите все правильно. Будь ласка, погляньте на моє посилання нижче. І переконайтесь, що 1) "c: \ Program files \ java \ jre7 \ bin \ javaw.exe" є правильним шляхом, і 2) цей шлях також правильно визначений у "HKLM, Software, Java" у вашому реєстрі.
paulsm4

команду ftype також потрібно запускати як адміністратор.
Брайан Мінтон

можливий дублікат запущеного файлу Jar у Windows
Сума

Справжня відповідь полягає в тому, що вам потрібно використовувати щось на зразок packr або one-jar, який буде витягувати та виконувати ваш код для користувача, або будувати файл JNLP, який Java тепер належним чином асоціює.
EntangledLoops

Маючи проблему сам, я створив додаток, щоб зробити саме це. Він знаходить установку Java, запускає відповідний виконуваний файл (JavaW.exe) і направляє його у файл JAR. 'Дійсно просте кодування, але також дуже зручне. Посилання можна знайти в моєму коментарі нижче. =) Stackoverflow.com/questions/8511063 / ...
BoyBlueSky

Відповіді:


38

Що вказано в списку правою кнопкою миші-> Відкрити за допомогою? Якась інша програма вказана як програма за замовчуванням? Чи вказано в середовищі виконання Java? Якщо Java Runtime є у списку, ви можете відкрити його та зробити програмою за умовчанням для запуску.

тобто

Клацніть правою кнопкою миші -> Властивості -> Змінити -> C: \ Program Files \ Java \ jre7 \ bin \ javaw.exe

38
Здається, це не працює в Java 8. Наразі моїм єдиним успіхом був запуск із командного рядка:java.exe -jar myFile.jar
Асимілатер

10
Те саме і тут - подвійне клацання файлу, пов’язаного з javaw, нічого не призводить. Запуск у командному рядку працює вручну. Припускаю, пов’язаний не вводиться в -jar?
Nick.McDermaid

Функція подвійного клацання можлива завдяки використанню зовнішнього сценарію - файлу BATch або EXEcutable. Я скомпілював саме такий виконуваний файл для використання на своїй машині, оскільки Windows 10, схоже, також знехтував пов'язаними файлами JAR. Дивіться наступний коментар: stackoverflow.com/questions/8511063 / ...
BoyBlueSky

Отже, ви говорите, що неможливо просто двічі клацнути JAR, щоб він працював? без файлу BATch або EXE?
White_King

41

Якщо ви раніше користувались правою кнопкою миші та відкривали \ path \ до \ вашого \ javaw.exe, то вам потрібно буде видалити такий ключ реєстру.

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar]

Тоді біжи

C:\>assoc .jar=jarfile
C:\>ftype jarfile="C:\path\to\your\javaw.exe" -jar "%1" %*

3
Я використовував ftype jarfile = "C: \ path \ to \ your \ java.exe" -jar "% 1"% *, щоб він працював.
Daimi

@Shifatullah єдина відмінність afaik полягає в тому, що java пов'язаний з консоллю, тоді як javaw - ні
17slim


16

Для Windows 7:

  1. Запустити "Панель управління"
  2. Натисніть "Програми за замовчуванням"
  3. Натисніть "Пов’язати тип файлу або протокол із певною програмою"
  4. Подвійне клацання .jar
  5. Перегляньте C:\Program Files\Java\jre7\bin\javaw.exe
  6. Натисніть кнопку Відкрити
  7. Натисніть кнопку OK

4
Для Windows 7 або 8 64-розрядної версії: Крок 5: C: \ Program Files (x86) \ Java \ jre7 \ bin \ javaw.exe
Math

2
Це може здатися незрозумілим, але в чому може бути проблема, якщо ".jar" не відображається у списку (крок 4)?
Vaughany

@Vaughany - Дивіться мою відповідь.
P.Brian.Mackey

7
у мене це не працює. Я запускаю Windows 7 64 і щойно перевстановив java jdk1.7.0_45. Якщо я відкриваю командний рядок і запускаю java -jar filename.jar, він працює нормально, але прив'язуючи файл jar до javaw, java або javaws, все не вдається без повідомлення про помилку.
Джеймс

Маючи проблему сам, я створив додаток, щоб зробити саме це. Він знаходить установку Java, запускає відповідний виконуваний файл (JavaW.exe) і направляє його у файл JAR. 'Дійсно просте кодування, але також дуже зручне. Посилання можна знайти в моєму коментарі нижче. =) Stackoverflow.com/questions/8511063 / ...
BoyBlueSky

14

Якщо ви спробуєте непопулярну відповідь :

Для Windows 7:

  1. Запустити "Панель управління"
  2. Натисніть "Програми за замовчуванням"
  3. Натисніть "Пов’язати тип файлу або протокол із певною програмою"
  4. Подвійне клацання .jar
  5. Перегляньте C:\Program Files\Java\jre7\bin\javaw.exe
  6. Натисніть кнопку Відкрити
  7. Натисніть кнопку OK

А файли jar все одно не відкриваються (у моєму випадку це було так, ніби я ніколи не клацав двічі):
відкрийте командний рядок (щоб бути в безпеці з увімкненими правами адміністратора) і введіть наступні команди:

java -version Це має повернути версію, щоб ви могли спокійно вважати, що Java встановлена.

Тоді біжи

java -jar "PATHTOFILE\FILENAME.JAR"

Прочитайте згенерований результат. Ви можете виявити повідомлення про помилку.


а для XP, що мені робити?

у моєму випадку це нічого не змінює, поверніться лише до system32
Rayan Suryadikara

11

Я спробував усі вищезазначені кроки, щоб вирішити проблему, але нічого не вдалося. Я встановив як JDK, так і JRE.

У моєму випадку один файл jar відкривався подвійним клацанням, тоді як інший не відкривався. Я вивчив ці файли, і ймовірною причиною було те, що відкривалося, було створено за допомогою JAVA SE 6, а те, що не відкривалось, створено за допомогою JAVA SE 7. Хоча проблемний файл jar запускався через командний рядок (java -jar myfile.jar).

Я спробував клацнути правою кнопкою миші -> Властивості -> Змінити на javaw.exe як в каталозі JDK \ bin, так і в каталозі JRE \ bin.

Нарешті я зміг вирішити проблему, змінивши шлях javaw.exe (з JDK \ bin на JRE \ bin) у редакторі реєстру.

Перейдіть до команди HKEY_CLASSES_ROOT \ jarfile \ shell \ open \ , значення було,

"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %*

Я змінив його на,

"C:\Program Files\Java\jre1.8.0_191\bin\javaw.exe" -jar "%1" %*

і це спрацювало. Тепер файл jar можна відкрити подвійним клацанням.


2
Це має бути прийнятою відповіддю. Жодна з інших відповідей не працювала для мене в Windows 10. Однак вони можуть працювати в Windows 7.
Хосе Мануель Феррейра Бенавідес,

1
Це спрацювало для мене. Жоден з інших методів не спрацював. Цей ключ у реєстрі мав стару версію Java, яка перешкоджала відкриттю Jar подвійним клацанням файлу.
Anacron

1
Моєю асоціацією в Windows 10 була команда HKEY_CLASSES_ROOT \ .jar_auto_file \ shell \ open \ і використана"C:\dev\openjdk11\bin\javaw.exe" -jar "%1"
bjmi

6

У мене була та ж проблема з файлами .jar, які не відкривалися подвійним клацанням. Виявилося, у мене було встановлено дві версії Java (Java 6 і 7). Видалення Java 6 з Панелі керування -> Видалення програми - це те, що дозволило .jar файлам відкриватися подвійним клацанням без використання командного вікна.


Це абсолютно правильно, це сталося зі мною, і після того, як я прочитав ваше рішення, воно знову спрацювало
Yahya,

2

Це мій шлях:

  1. Створіть файл bat (приклад openJar.bat).

    @echo off
    start javaw -jar "%1" %*
    exit
    
  2. Виріжте його та вставте в C: \ Program Files \ Java \\ bin (цей крок непотрібний, але ви повинні це зробити).

  3. Клацніть правою кнопкою миші файл> Властивості> Виберіть відкрити за допомогою (Змінити кнопку) і виберіть файл.
  4. Двічі клацніть файл jar, щоб перевірити його.

2

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

Тому намагався змінити вручну також ключ реєстру, але це мені не допомогло. Спробував перевстановити JDK новішу / старішу версію без жодного результату. (У мене є кілька версій Java)

І я вирішив це лише за допомогою програми jarfix. Jarfix автоматично виправив проблему асоціації .jar у системі Windows. (перевірте regedit:PC\HKEY_CLASSES_ROOT\jarfile\shell\open\command )

Що говорить Йоганн Непомук Лефльман:

Основною причиною наведеної вище проблеми є те, що програма вкрала асоціацію .jar. Якщо ви вперше встановили середовище виконання Java, тип файлу під назвою "jar" присвоєно javaw.exe правильно. "jar" - це абревіатура для "java archive", а javaw.exe - правильна програма для запуску .jar. Однак у Windows будь-яка програма може викрасти тип файлу в будь-який час, навіть якщо він вже пов'язаний з програмою. Багато zip / unzip програм вважають за краще робити це, оскільки jar зберігається у форматі .zip. Якщо ви двічі клацнете на .jar, програма пакета відкриє файл, а не javaw запускає програму, оскільки програма пакету ігнорує метаінформацію, яка також зберігається у файлі .jar. У базі даних помилок Oracle є звіт з низьким пріоритетом 4912211 "

Ви також можете пропустити з’єднання файлів із .jar, якщо використовуєте безкоштовний OpenJDK без програми встановлення.

Примітка: моя ОС - Windows 10, але логіка однакова для 7, 8 тощо.

Корисні посилання:
https://windowsreport.com/jar-files-not-opening-windows-10/ https://johann.loefflmann.net/en/software/jarfix/index.html


1

Ваша проблема також може бути всередині налаштування коду Java, я маю на увазі, якщо ваша програма якось не може реалізувати основний клас / основний файл ( точка входу ), вона не запустить програму / .jar (спеціально додаток, побудований на IDE). Щоб вирішити це на IDE:

  • Клацніть правою кнопкою миші проект> Властивості> Виконати> Огляд основного класу> ОК.
  • Очистити та відновити

Спробуйте запустити його зараз. Сподіваюся, це допоможе


1

У мене була проблема, що Windows блокує його роботу (Windows 10 Pro). Клацніть правою кнопкою миші> властивості> у правому нижньому куті це може сказати вам "Windows заблокувала функціональність ........" поруч з нею є прапорець "Розблокувати"> зніміть прапорець> застосувати> параметр для блокування зникає, а потім ви можете запустити його.


1

змініть програму за замовчуванням для файлів JAR з java.exe на javaw.exe із папки JAVA_HOME / bin.

Це пов’язано з тим, що java.exe є лише консольним додатком, але для файлу JAR потрібно виконати віконце. Оскільки javaw.exe є віконною програмою, вона є кращою для виконання файлів JAR.

Альтернативою цьому є те, що до певної міри ви можете використовувати командний рядок для запуску своїх файлів JAR, просто використовуючи ключове слово java із -jar attrib.


1

Довелося спробувати це:

  1. Відкрийте командний рядок як адміністратор
  2. Перейдіть до папки файлу за допомогою cd команди
  3. Тип java.exe -jar *filename*.jar
  4. Натисніть клавішу Enter

Програма повинна з’явитися відразу після цього.


0

http://www.wikihow.com/Run-a-.Jar-Java-File

  1. Припустимо, що ви завантажили Java JRE та / або Java SDK
  2. Щоб зробити асоціації, перейдіть у розділ « Мій комп’ютер », клацніть на одному з ваших дисків ( C:наприклад).
  3. Коли воно відображається, виберіть «Інструменти» »» «Параметри папки» (або Властивості ... воно знаходиться в різних місцях, залежно від версії Windows).
  4. Відкрийте Провідник Windows (просто відкрийте будь-яку папку), щоб отримати вікно "Інструменти" -> "Параметри папки".
  5. Коли з’явиться вікно «Параметри папки», натисніть вкладку «Типи файлів». Ви повинні мати можливість редагувати або додавати файли JAR ( .jarрозширення)
  6. Змініть програму, що використовується для відкриття файлів JAR. У вікні вибору файлу перейдіть до папки, де встановлено JRE (має бути C:/Program Files/Java/..., позначте «Завжди відкривати за допомогою», і виберіть javaw.exeфайл.


0

Це не проблема асоціації файлів, оскільки ви можете правильно запустити програму через командний рядок.

Проблема полягає в тому, що ви двічі клацаєте на пов’язаному файлі програма запускається та запускається із шляхом до файлу як базовим шляхом виконання. Будь-який відносний шлях буде обчислюватися із шляху до файлу, і все, що ви намагаєтесь завантажити, можливо, буде відсутнє.

Нічого не відбувається, навіть якщо ви оточуєте весь код точки входу за допомогою функції try / catch (виняток), тому що java кидає Throwables, а не винятки: щоб це виправити у вашій точці входу Java оточує вміст основного методу try / catch ( Throwable) (базовий клас для винятків та помилок) та налагодження.



0

У мене була та сама проблема, і я шукав рішення в Інтернеті, і жодна з пропозицій не відкрилася, двічі клацнувши .jarфайл.

У моєму випадку причиною є те, що на моєму комп’ютері встановлено кілька версій JDK & JRE. Оскільки я розробник програмного забезпечення, що працює з декількома різними версіями для різних клієнтів, мені потрібно використовувати декілька файлів JDK у своєму ПК (Windows 10 Pro). Тому я не хочу змінювати системні змінні (тобто JAVA_HOME, JRE_HOMEабо PATH), натомість я використовую командний рядок для запуску Java у процесі користувача, коли б я хотів використовувати іншу версію.

При встановленні JDK він реєструє .jarасоціацію файлів з останньою версією, яку ми встановили на ПК. Якщо клацнути правою кнопкою миші на піктограмі .jar та вибрати властивості, це покаже, що файл відкривається за допомогою “Java (TM) Platform SE Binary”. Якщо ми подивимося на розділ реєстру:HKEY_CLASSES_ROOT\jarfile\shell\open\command він вкаже на останню версію JDK.

Це не гарна ідея (іноді дратує) змінювати ключ реєстру кожного разу, коли я хочу запустити збірку програми з іншої версії.

Отже, в моїй ситуації неможливо просто двічі клацнути .jarфайл, щоб виконати його. Але натомість я сам знайшов вирішення проблеми.

Сценарій:

У ПК встановлено кілька JDK (1.7, 1.8, 9.0, 10.0, 11.0 та 12.0), тому останньою встановленою була 12.0.

Проблема

Хочете двічі клацнути виконуваний файл, .jarрозроблений за допомогою JDK 1.8 і не працював

Це моя робота навколо рішення:

  1. Створіть ярлик для .jarфайлу, який потрібно відкрити.
  2. Клацніть правою кнопкою миші піктограму ярлика та виберіть властивості -> вкладку Ярлик
  3. Змінити текст у цілі (наприклад "D:\Dev\JavaApp1.8.jar")

    " C:\Program Files\Java\jdk1.8.0\bin\javaw.exe" -jar " D:\Dev\JavaApp1.8.jar"

  4. Потім натисніть кнопку OK Двічі клацніть ярлик.

Тепер слід відкрити програму.

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