Когда вы используете ассоциацию javaw
, она не создает окно команд и поглощает все вызовы System.out
и System.err
.
Вам следует повторно связать файл .jar
с двоичным файлом java
, который должен отобразить необходимое командное окно.
Если вы использовали простую опцию Open With...
, в командной строке будет пропущена опция -jar
.
Откройте командное окно администратора (это необходимо, если вы используете Vista или Windows 7 с включенным UAC) и выполните:
assoc .jar=jarfileterm
ftype jarfileterm="C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*
В вашем случае вы должны заменить путь C:\Program Files\Java\jre7\bin\java.exe
на путь для вашей установки jre.
Когда вы дважды щелкните после этого, он должен работать правильно.
Вы можете добавить еще один ftype:
ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*
снова заменив путь к двоичному файлу javaw на тот, который для вашей системы.
Теперь вы сможете переключаться между оконным и не оконным режимами, поочередно выбирая assoc .jar=jarfileterm
и assoc .jar=jarfile
.
Если вы хотите сохранить командное окно после запуска .jar, вы окружаете вызов команды java с помощью cmd /s /k
, а именно:
ftype jarfileterm=cmd /s /k ""C:\Program Files\Java\jre7\bin\java.exe" -jar "%1" %*"
assoc .jar=jarfileterm
Если эти команды сработали, то двойной щелчок по файлу jar вызовет всплывающее окно команд, которое сохранится.
Вы не можете установить достаточно сложную командную строку с помощью Open With...
или Default Programs
, которая позволит запустить файл jar. Если вы успешно испробовали все эти усилия команд ftype
и assoc
, и они все еще не работают, вам нужно будет удалить редактор реестра.
Запустите regedit
и найдите ключ с именем .jar под HKEY_CLASSES_ROOT
— это должно привести к единственному значению под ним, называемому (Default)
со значением, если ваши вызовы команды ftype сработали, тогда оно должно читаться как jarfileterm
. Если это не сработало, то вы просматриваете ассоциацию, которая могла быть создана другим приложением (я не знаю, заменяет ли средство обновления Java эти записи, но если да, то проблема может быть в этом)
Затем вам нужно найти этот ключ в файле HKEY_CLASSES_ROOT
. Он найдет эту запись, которая должна содержать ключ Shell
(т.е. разверните папку jarfileterm
, и она должна открыть другую папку Shell
), которая содержит ключ Open
, который содержит ключ Command
, который содержит значение (Default)
, которое должно содержать команду вызова для запуск файлов .jar. Эта команда должна соответствовать последним введенным вами ftype jarfileterm=...
записям. Если это не так, вы должны сделать так, чтобы она соответствовала одной из опций cmd /s /k
или "c:\program files\java\jre7\bin\java.exe" (в зависимости от если вы хотите сохранить командное окно в случае ошибки запуска или нет)
person
Petesh
schedule
04.05.2012