1

我想使用一个 Java 应用程序,它不是我编写的,也不再维护,这意味着我不能只是去找作者并要求一个新功能。我必须添加哪些选项来添加代理功能。是否可以添加一些 shell 参数?将代理的二进制代码直接添加到.class文件中是否可以管理?我可以编写自己的类,从.class文件中导入内容并覆盖网络功能吗?

4

3 回答 3

2

这可能对您有用:

java -Dhttp.proxyHost=IP_address -Dhttp.proxyPort=8080 -jar App.jar
于 2012-12-09T10:28:08.463 回答
2

可以通过创建一个具有相同名称/包的类并将其放在类路径中的较早位置以使其具有优先权,从而用您自己的实现替换一个类。但是,如果代码的其他部分使用此类,则不能破坏二进制兼容性。

还有一些检测 API 可用于在加载类时对其进行修改。请参阅仪器 API

于 2012-12-09T10:30:04.217 回答
0

如果您正在创建自己的引用已编译的源文件.class,那么在您的文件中尝试这样做:

java.util.Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost", PROXY_HOST);
systemProperties.setProperty("http.proxyPort", PROXY_PORT);

我认为这应该有效。

于 2012-12-09T11:24:40.350 回答