Брандмауэр Windows 7 с бинарными позициями Java SE:
Когда я был в окне "Разрешенные программы" в брандмауэре, я заметил не одну, а две позиции с одинаковым названием "Java (TM) Platform SE binary".
Один из них был отмечен галочкой только Дом / Работа (Частный), а другой - только Общедоступный.
Мой первый вопрос был, почему один из них проверен на Public? Почему любой из них должен быть общедоступным? Я не задумывался о последствиях его удаления, но закончил тем, что удалил позицию, которая была проверена в Public, подумав: (а) они выглядят как дураки (их обоих называют "Java (TM) Platform SE"). двоичный файл "), но (b) один из них установлен на public, что выглядит небезопасно, поэтому я просто удалю его полностью.
Теперь мне интересно, если обе позиции должны быть там. Одна из причин, которые меня интересуют, заключается в том, что когда я смотрю на [Детали] единственной оставшейся позиции, я вижу, что она указывает на C:\program files\java\jdk1.6.0_22\bin\javaw.exe и сейчас Мне интересно, указала ли другая позиция на что-то, кроме javaw.exe.
Кто-нибудь еще видит конфигурацию, которая могла бы прояснить ситуацию для меня? Спасибо за любую помощь и совет.
ОБНОВЛЕНИЕ: я только думал об этом. Другая позиция могла быть настроена на Публичную, потому что это связь с Oracle для обновлений (например, те уведомления, которые каждые пару месяцев или около того появляются в правом нижнем углу панели задач, сообщая, что вы хотите установить новую версию Java?), Может ли какой-либо пользователь Windows 7 с Java SE сказать мне, если они видят две позиции, каждая из которых говорит "двоичный файл Java (TM) Platform SE") на панели "Разрешенные программы", и скажите, что представляет собой другой.exe-файл помимо javaw.exe?
Еще раз спасибо всем.
Проделав еще несколько работ на основе Java, я обнаружил, что дополнительная бинарная позиция SE динамически добавляется ОС в список разрешенных программ при некоторых обстоятельствах. То, что я изначально исключил из списка, было добавлено повторно (оба являются javaw.exe), и я уверен, что все так, как должно быть сейчас.
1 ответ
В Windows JRE имеет две команды для запуска приложений Java: java.exe
для консоли и javaw.exe
для программ с графическим интерфейсом. (Это необходимо из-за различия в "графической консоли" в Windows.) Они работают точно так же, но если вы запускаете консольную версию, java.exe
Windows автоматически откроет для него консольное окно (если оно еще не создано).
Причина, по которой вы используете обе конфигурации брандмауэра, проста: две Java-программы запросили доступ, одна из которых использовала режим графического интерфейса пользователя, а другая - нет.
Один большой недостаток байт-кода и интерпретируемых языков выполнения состоит в том, что все они представляются ОС как один и тот же процесс. Все программы Java работают как java.exe
(или же javaw.exe
) все программы на Python запускаются как /usr/bin/python
все Perl-программы запускаются как perl.exe
, и так далее. (В Windows исключением является среда выполнения Microsoft .NET, которая использует тот же формат .exe и может сохранять идентичность процесса.)
С точки зрения брандмауэра, это делает фильтрацию на основе приложений бесполезной, поскольку вы не можете назначить доверие определенному приложению, а только всей среде выполнения (и всем приложениям, которые через него работают).
В Windows XP я удалил обе записи Java и повторно добавил их в качестве правил на основе портов. Поскольку брандмауэр XP обрабатывает только входящие соединения, я не уверен, что то же самое будет работать в Windows 7, но вы должны попробовать это. (Разрешение исходящих подключений к java.exe
есть, имхо, окей.)