java может запускать jar из cmd, но не двойным щелчком - PullRequest
6 голосов
/ 07 сентября 2011

Я только что создал файл jar, используя jdk7.Я пытался запустить его, но продолжал получать ошибку.Оказалось, что он указывает на jre6, а не на jre в jdk7.Итак, я использовал следующую команду, чтобы изменить его

ftype jarfile = "C: \ path to jre \ bin \ javaw.exe" -jar "% 1"% *

После этогоЯ снова попытался дважды щелкнуть по файлу JAR, но он открыл окно с просьбой выбрать программу для открытия.Когда я выбрал тот же файл javaw.exe, что и выше, он запускается, но завершается немедленно, ничего не делая.Я могу запустить его в cmd, выполнив команду java -jar file.jar.Я даже попытался удалить раздел реестра .jar, но это просто вернуло меня к тому моменту, когда он попросил выбрать программу для открытия.Я использую Windows 7 Ultimate, если это имеет значение.

РЕДАКТИРОВАТЬ: В реестре есть 3 подраздела: OpenWithList, OpenWithProgids и UserChoice.Я изменил все значения по умолчанию на путь выше, кроме UserChoice, который не позволяет мне редактировать его из regedit.Когда я удаляю это и пытаюсь запустить файл jar, он открывает программу выбора, чтобы снова открыть ее с окном.По какой-то причине он игнорирует другие ключи реестра

Ответы [ 6 ]

12 голосов
/ 18 марта 2012

ОК, я нашел ответ где-то еще, но столкнулся с этой проблемой снова, поэтому пришел сюда через Google.Решение ...

  1. Откройте regedit.exe
  2. Либо найдите «jre6», либо выполните следующие действия:HKLM->SOFTWARE->Classes->jarfile->shell->open->command
  3. Измените поле данных на каталог файла javaw.exe , который находится в вашем каталоге JDK.
  4. Ради любви к Богу, не забывайтеположить на конец странные [-jar "%1" %*] части.
  5. Наслаждайтесь превосходством Oracle.

Надеюсь, это сэкономит некоторым людям немного времени.

Это случилось со мной, когда я установил плагин JRE6 для Chrome, хотя это могло произойти при установке любого другого JRE, я думаю.

4 голосов
/ 11 сентября 2013

Я исправил это, перейдя в regedit, и искал jre, который вывел ...

HKEY_CURRENT_USER / Программное обеспечение / Классы / Приложения / javaw.exe / shell / open / command

Iизменил REG_SZ

с: "C: \ Program Files (x86) \ Java \ jre7 \ bin \ javaw.exe" "% 1"

на: "C: \ Program Files (x86) \ Java \ jre7 \ bin \ javaw.exe "-jar"% 1 "% *

2 голосов
/ 07 сентября 2011

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

Если он запрашивает у вас exe для его запуска, то это означает, что ваш JRE каким-то образом не связан с расширением .jar. Вам нужно изменить запись реестра .jar, чтобы она работала c:\path_to_jre\bin\javaw -jar %1, чтобы она работала.
Раньше был под File Explorer > Tools > Folder Options > File Types.

Тогда ищи .jar там. Вы должны найти текстовое поле, которое показывает исполняемый файл и аргументы командной строки. Это то, что вы хотите изменить. Вы также можете сделать это в редакторе реестра, но я забыл путь переменной HKEY. Я уверен, что это KBA поможет:

support_microsoft_kb_950505

1 голос
/ 07 сентября 2011

Проверьте, действительно ли тип файла jarfile зарегистрирован с расширением * .jar, используя

assoc .jar

Похоже, что .jar не связан с jarfile.

0 голосов
/ 07 сентября 2011

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

0 голосов
/ 07 сентября 2011

Не проще ли изменить свою версию Java на новую JDK7, изменив переменную среды CLASSPATH? Посмотрите, как здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...