我正在测试六个不同的 .jar 文件,它们都需要处理无法在线访问的可能性。
不幸的是,我在网络磁盘上,所以禁用网络连接或拉以太网电缆不起作用除非我将所有文件移动到/tmp
或/scratch
并更改我的 $HOME
环境变量,所有这些我都不想做,因为它最终会成为很多工作。
有没有办法调用 java -jar
并禁止进程访问互联网?我没有在 man
页面中找到任何这样的标志。是否有一种 UNIX 方式可以做到这一点,如:
disallowinternetaccess java -jar Foo.jar
最佳答案
告诉您的 Java 程序通过代理访问网络。对于所有互联网访问,这将是一个 SOCKS5 代理。
java -DsocksProxyHost=socks.example.com MyMain
我相信如果没有代理运行,你应该在你的程序中得到一个适当的异常。如果您需要完全控制正在发生的事情,您可以查看 - 并可能修改 - http://jsocks.sourceforge.net/
参见 http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html了解详情。
注意:您可以在没有任何 native Unix 的情况下执行此操作,因此这个问题非常适合 SO。
关于networking - 调用 java -jar 时禁用互联网访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581084/