有没有办法在 Windows Server 2008 上运行 Java VM (java.exe
) 并使用命令行参数或系统变量禁用所有网络连接?
最佳答案
您可以通过启用默认的 Java 安全管理器来做到这一点。默认情况下不强制执行任何安全措施,因此您可以做任何事情,但如果启用了安全管理器,它将限制网络访问、文件访问和许多其他事情,除非您在安全策略文件中另行指定。
要启用默认安全管理器,请在启动时将此参数传递给 JVM。
java -Djava.security.manager=default my.main.Class
通过这样做,任何来自 JVM 内部的网络访问尝试都会抛出 java.net.NetPermission
。
这也会破坏文件访问之类的东西,所以如果你需要允许它,你需要在一个特殊的安全策略文件中指定那些(-Djava.security.policy=path/to/policy.file
)。应该有很多关于如何设置它的示例,只需搜索“java 权限”即可开始。
关于java - 如何在 Windows Server 2008 上禁用 Java 中的所有网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645588/