Ubuntu: java.net.SocketException in ec2-api-tools

Having installed ec2-api-tools under my lucid dev environment I was trying to shut ec2 instances down with ec2stop [instance_id] and I was getting the following exception:

$ ec2stop i-XXXXXXXX
Unexpected error:
java.net.SocketException: Invalid argument or cannot assign requested address
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
        ----- snip ------

I found to enable ec2-api-tools commands to work it's necessary to switch over to using the sun jre.

Note: In lucid open-jdk is the default java and sun-java6-jre is now found in the partner repos.

You can do this if you have the sun-java6-jre package with the following:

sudo update-alternatives --config java

And select the correct version interactively.

Should you need to add the Lucid partner repo you can use the following:

sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
Show Comments