In Windows verfügt JRE über zwei Befehle zum Ausführen von Java-Anwendungen: java.exe
für Konsolen- und javaw.exe
GUI-Programme. (Dies ist aufgrund der Unterscheidung "Grafische vs Konsole" in Windows erforderlich.) Sie funktionieren auf dieselbe Weise, aber wenn Sie die Konsolenversion ausführen java.exe
, öffnet Windows automatisch ein Konsolenfenster (falls noch nicht vorhanden) ein).
Der Grund, warum Sie beide in der Konfiguration Ihrer Firewall haben, ist einfach: Zwei Java-basierte Programme haben Zugriff angefordert, von denen eines den GUI-Modus verwendet und das andere nicht.
Ein großer Nachteil von Bytecode- und interpretierten Sprachlaufzeiten ist, dass sie alle im Betriebssystem als derselbe Prozess erscheinen. Alle Java-Programme werden als java.exe
(oder javaw.exe
) ausgeführt, alle Python-Programme werden als ausgeführt /usr/bin/python
, alle Perl-Programme werden als perl.exe
usw. ausgeführt. (Eine Ausnahme ist unter Windows die Microsoft .NET-Laufzeitumgebung, die dasselbe .exe- Format verwendet und die Prozessidentität beibehalten kann.)
Aus Sicht der Firewall macht dies die anwendungsbasierte Filterung unbrauchbar, da Sie einer bestimmten Anwendung keine Vertrauenswürdigkeit zuweisen können, sondern nur der gesamten Laufzeit (und allen Anwendungen, die über sie laufen).
In Windows XP habe ich entfernt sowohl Java - Einträge und neu hinzugefügt, um sie als Hafen Regeln -basierte. Da die Firewall von XP nur eingehende Verbindungen handhabt, bin ich nicht sicher, ob dieselbe unter Windows 7 funktionieren würde, aber Sie sollten es versuchen. (Zulassen von ausgehenden Verbindungen zu java.exe
is, IMHO, okay.)