コマンドラインでJavaプログラムを実行する際のプロキシ指定

JavaでHTTPコネクション(net.HttpClientとか)を利用したコマンドラインプログラムを実行する際、実行する環境から外部サーバ等へのアクセスがHTTPの場合プロキシの設定が必要な場合がある。
プログラム中で設定してもよいのだけど、特に設定をしていなかった場合はjavaコマンドの引数でシステムプロパティを直接設定してやればよい。

  • システムプロパティ
    • プロキシサーバのホスト名設定 : http.proxyHost
    • プロキシサーバのポート番号 : http.proxyPort

たとえば、利用中のプロキシホスト名が"myproxy"でポート番号が8080でwebgetというクラスファイルを実行したい場合は、

$ java -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=8080 webget

といった具合でよい。
あまりに久しぶりにJavaを触っていなかった*1ので最近リプレイスした仕事用PCにSDKが入っていなくてびっくりしてしまった。(親機の方には入っていたけど)

*1:Hadoopも動かすのにはJREでよいし、Hadoop Streamingで使っていたのでJavaプログラムそのものを触る必要がなかったのだ...