networking - 调用 java -jar 时禁用互联网访问

标签 networking command-line java

我正在测试六个不同的 .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/

相关文章:

android - 来自 HttpURLConnection 的 OkHttpClient 连接泄漏警告

java - 防止程序员获取类实例的锁

Java堆栈跟踪分析,媒体中的错误 header ?

java - OSGI包可见服务实现

java - 是否可以指定 JVM(或 IDE)使用哪个网络接口(interface)

ios - 与Mac通话的iOS应用

c++ - 使用服务器的实际 IP 和端口连接到多播服务器

arrays - 将数组与 -nan 进行比较

bash - npm adduser 通过 bash

postgresql - 如何退出/注销 PostgreSQL?