+1 for BitcoinJ, use the ScriptBuilder class to write your custom ScriptSig and the Transaction class (calculateSignature method) to sign with the appropriate key. I haven't looked too closely at Jeff's tool, but I'm not sure it'd work.
Transaction tx = new Transaction();
tx.addInput(prevtxout);
tx.addOutput(...);
tx.getInput(0).setScriptSig(
new ScriptBuilder()
.data(tx.calculateSignature(0, // input number
key, // ECKey instantiated with the private key you provided
tx.getInput(0).getConnectedOutput().getScriptPubKey(), // ScriptPubKey from the output - you can also just use prevtxout.getScriptPubKey()
SigHash.ALL, // the SIGHASH_ALL sighash flags
false // SIGHASH_ANYONECANPAY is false
).encodeToBitcoin()) // Encode the signature to Bitcoin format and return as byte array, which is what data() expects
.data(key.getPubKey()) // Add key to top of stack since this is an address/pubkeyhash transaction and not just a pubkey transaction
.build() // Build the ScriptSig
);
Fairly simple, though there's setup to do to get all of that stuff into the right variables to start with