Невозможно запустить файлы .jar, дважды щелкнув их в Windows 7

6488
dinomario10

Запуск файла .jar в командной строке работает нормально, но я не могу выполнить файлы .jar на своем ПК, дважды щелкнув по ним . Что интересно, те же самые файлы .jar успешно выполняются на моем ноутбуке двойным щелчком мыши.

Я включил %JAVA_HOME\binи JDK_HOME\binв PATHпеременную.
Я JAVA_HOMEнастроен на C:\Program Files\Java\jre1.8.0_121.
Я JDK_HOME   настроен на C:\Program Files\Java\jdk1.8.0_121.

В течение некоторого периода времени двоичный файл Java (TM) Platform SE исчез из Open withсписка, и я не мог добавить его, пока не изменил HKEY_CLASSES_ROOT\jar_auto_file\shell\open\commandключ regedit.exeна соответствующую версию:

C: \ Program Files \ Java \ jre1.8.0_ 121 \ bin \ javaw.exe ""% 1 ".


Вот снимок Windows CMD с java -versionвведенным на моем компьютере:
java -version in Windows CMD


Я попробовал следующие методы, но безуспешно:

  • переустановка JRE и JDK,
  • связывая .jar файлы с C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe,
  • используя assoc .jar=jarfileи ftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %*в командной строке,
  • создание новой системной переменной среды OPENDS_JAVA_ARGS и установка ее в -jar .


Дополнительная информация:

  • Я использую 64-разрядную версию Windows 7 Professional (Service Pack 1) с последними обновлениями, установленными как на моем компьютере, так и на ноутбуке.
  • Запуск файлов .jar двойным щелчком по ним работал на моем ПК, но неожиданно перестал работать некоторое время назад. Я не модифицировал ничего, связанного с Java.
  • У меня есть новейшая версия JRE и JDK (Java 8 версия 121).
  • Из файлов .jar, которые я пытаюсь запустить, некоторые являются приложениями GUI Swing, а другие открывают системную консоль (если она еще не открыта) с помощью Runtime.getRuntime().exec(String[]).


Я уже пытался исправить эту проблему с помощью решений по следующим ссылкам (без успеха):


Заметки:

  • Я не хочу открывать .jar файлы с WinRAR.
  • Я не хочу открывать файлы .jar, запустив java -jar jarfile.jarcmd.exe.
  • Я не ищу стороннее приложение для запуска файлов .jar.


На данный момент я использую C:\Windows\System32\cmd.exe /k "java -jar C:\path\to\jarfile\Program.jar"как ярлык для запуска jar-файлов, но я не удовлетворен этим решением, так как это открывает консоль для запуска даже приложений Swing.

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

2

3 ответа на вопрос

1
Stigma

I ran into someone who had the same problem you did today. And somehow, I managed to fix it, although I am not sure entirely what fixed it; I can only offer you the approximate series of steps I've taken.

Using regedit, I found that HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE registry entries weren't in agreement. HKLM had the typical .jar->jarfile setup, with jarfile pointing to the right path. HKCU had a .jar -> jar_auto_file association which pointed to an old an invalid path.

Editing this path did not fix it. I also tried pointing it to jarfile, which didn't help either. I fussed with assoc and ftype a bit to see if this might wake Windows up; I figured the anti-hijacking functionality somehow prevented Windows from listening to the updated path. Sadly, it didn't do much.

So eventually I just deleted the jar_auto_file entry. This gave me partial happiness: Windows finally realized the entry in the Open With menu was the one with a working path. (Selecting the correct path/file in the past would never stick around correctly.) Sadly doubleclicking was still broken. However, just making sure the 'Always open this type of file with this program' box was checked and opening it finally fixed the association well enough that doubleclicking actually worked again.

Мне удалось получить двоичный файл * Java (TM) Platform SE * в списке * Open with * путем сопоставления путей в записях реестра `HKEY_CURRENT_USER` и` HKEY_LOCAL_MACHINE`. Теперь файлы `.jar` наконец-то показывают значки, но все равно не работают при двойном щелчке. dinomario10 6 лет назад 0
** ОБНОВЛЕНИЕ: ** Я удалил записи `.jar` и` jar_auto_file` из `HKEY_CURRENT_USER / Software / Classes` и ** это сработало **! Файлы .jar снова открываются при двойном щелчке! dinomario10 6 лет назад 0
1
bogdotro

У меня тоже была проблема. Решение еще проще. Добавьте недостающий -jarаргумент.

Перейдите в HKEY_CLASSES_ROOT \ jar_auto_file \ shell \ open \ command и установите значение по умолчанию:

"C:\Program Files\Java\[...]\java.exe" "-jar" "%1" 

Не хватало только одного "-jar"варианта.

Наслаждайтесь!

0
ePandit

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