md5sum/opensslコマンドで取得したハッシュ値と同じ値をjavaで取得したいのですが
期待した結果がえられません。
同じ結果を得るにはjavaでどのように書いたらよいのでしょうか?

(1)md5sum/opensslコマンドの場合

$ echo abc | md5sum
0bee89b07a248e27c83fc3d5951213c1  -
$ echo abc | openssl md5
(stdin)= 0bee89b07a248e27c83fc3d5951213c1
$ 

(2)javaプログラムの場合(Apache Common Codec, MessageDigest)
・ソース

package test;

import java.math.BigInteger;
import java.security.MessageDigest;
import org.apache.commons.codec.digest.DigestUtils;

public class Md5sum2 {

    public static void main(String[] args) {
        String str = "abc";

        // 1. MessageDiget
        try {
            byte[] input = str.getBytes("UTF-8");
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] md5 = md.digest(input);
            BigInteger bigInt = new BigInteger(1, md5);
            String result = bigInt.toString(16);
            System.out.println("result : " + result);
        } catch(Exception ex) {
            ex.printStackTrace();
            throw new RuntimeException(ex);
        }

        // 2. Apache Commons Codec
        String out = DigestUtils.md5Hex(str);
        System.out.println("result : " + out);
    }
}

・実行結果

$ java -cp ~/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:. test.Md5sum2
result : 900150983cd24fb0d6963f7d28e17f72
result : 900150983cd24fb0d6963f7d28e17f72
$