Когда я был в окне «Разрешенные программы» в брандмауэре, я заметил не одну, а две позиции с одинаковым названием «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 ответ1

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 , IMHO, нормально.)

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