2

Запуск файла .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 в 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.jar в cmd.exe.
  • Я не ищу стороннее приложение для запуска файлов .jar.


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

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

3 ответа3

1

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

Используя regedit, я обнаружил, что записи реестра HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE не были согласованы. HKLM имел типичную настройку .jar -> jarfile с jarfile указывающим на правильный путь. HKCU имел ассоциацию .jar -> jar_auto_file которая указывала на старый неверный путь.

Редактирование этого пути не исправило это. Я также попытался указать на jarfile , что тоже не помогло. Я немного суетился с assoc и ftype чтобы посмотреть, может ли это разбудить Windows; Я полагал, что функция защиты от угона как-то мешает Windows прослушивать обновленный путь. К сожалению, это мало что дало.

В итоге я просто удалил запись jar_auto_file . Это дало мне частичное счастье: Windows, наконец, поняла, что запись в меню « Open With это запись с рабочим путем. (Выбор правильного пути / файла в прошлом никогда не будет корректным.) К сожалению, двойной щелчок все еще был сломан. Однако, просто удостоверившись, что флажок «Всегда открывать этот тип файла с помощью этой программы» был установлен, и его открытие, наконец, исправило ассоциацию достаточно хорошо, чтобы двойной щелчок фактически снова работал.

1

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

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

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

Не хватало только опции "-jar" .

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .