我有一台 Windows PC,正在运行需要互联网访问的独立 Java 应用程序。为了限制其他应用程序(如 Windows 更新、防病毒等)的数据使用,PC 已设置 Windows 防火墙,并且仅允许到特定白名单应用程序的出站连接。
我目前列出了: UDP 端口 53 上的 DNS Java.exe 和 Javaw.exe
但是,当我运行 Java 应用程序时,我收到以下堆栈错误...
java.net.SocketException:权限被拒绝:连接
我的理解是,将 Java.exe 列入白名单将允许通过互联网访问 Java 应用程序,但这不起作用。
知道为什么吗?
不是 java.exe 将 .jar 文件连接到互联网,而是 javaw.exe 这样做。
为了允许我的 MyApp.jar 应用程序在 Windows Defender 防火墙中进行传出连接,我可以为 javaw.exe 添加规则,如下所示:
看起来您需要在管理员模式下运行 Java 应用程序。