I don't think Java currently supports this. Currently, I have been using a third party library called Jpcap which is a simple Java wrapper around the pcap library. You can receive packets, manipulate the packet header information and send the packet out with this library. It is fairly straightforward in learning to use it and is easy to install on most systems.
Note there is also a jpcap library( notice the case difference) this one can only receive packets. Jpcap can do both so is great for all sort of uses.
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/