user2075: I managed to create a raw tx using Bitcoinj but not able to figure out how to verify its signatures. 
Assuming I know the addresses corresponding to the (supposedly) unspent outputs used as inputs to the Tx, what is the easiest way to verify the Tx?

user2306: You're interested in the following API calls:
public List<TransactionInput> Transaction.getInputs()
public Script TransactionInput.getScriptSig() throws ScriptException
public void Script.correctlySpends(Transaction txContainingThis, long scriptSigIndex, Script scriptPubKey)

Use them like so:
Transaction tx = ...
List<TransactionInput> inputs = tx.getInputs();
for(int i = 0; i < inputs.size(); i++) {
    TransactionInput input = inputs.get(i);
    Script scriptSig = input.getScriptSig();
    Script scriptPubKey = ...
    scriptSig.correctlySpends(tx, i, scriptPubKey);
}

The tricky bit is getting scriptPubKey. If you have the transactions you're spending in memory, it's as simple as input.getConnectedOutput().getScriptPubKey();
If it isn't, then you can make an educated guess by converting the address to a P2PKH scriptPubKey.
public static Script ScriptBuilder.createOutputScript(Address to)

This creates an edge case where if someone tries to spend a P2PK output, it will appear to be signed incorrectly to your program. (Both are represented by addresses.)

2075: <p>I managed to create a raw tx using Bitcoinj but not able to figure out how to verify its signatures. 
Assuming I know the addresses corresponding to the (supposedly) unspent outputs used as inputs to the Tx, what is the easiest way to verify the Tx?</p>
 2306: <p>You're interested in the following API calls:</p>

<pre><code>public List&lt;TransactionInput&gt; Transaction.getInputs()
public Script TransactionInput.getScriptSig() throws ScriptException
public void Script.correctlySpends(Transaction txContainingThis, long scriptSigIndex, Script scriptPubKey)
</code></pre>

<p>Use them like so:</p>

<pre><code>Transaction tx = ...
List&lt;TransactionInput&gt; inputs = tx.getInputs();
for(int i = 0; i &lt; inputs.size(); i++) {
    TransactionInput input = inputs.get(i);
    Script scriptSig = input.getScriptSig();
    Script scriptPubKey = ...
    scriptSig.correctlySpends(tx, i, scriptPubKey);
}
</code></pre>

<p>The tricky bit is getting scriptPubKey. If you have the transactions you're spending in memory, it's as simple as <code>input.getConnectedOutput().getScriptPubKey();</code></p>

<p>If it isn't, then you can make an educated guess by converting the address to a <a href="https://en.bitcoin.it/wiki/Script#Standard_Transaction_to_Bitcoin_address_.28pay-to-pubkey-hash.29" rel="nofollow">P2PKH</a> scriptPubKey.</p>

<pre><code>public static Script ScriptBuilder.createOutputScript(Address to)
</code></pre>

<p>This creates an edge case where if someone tries to spend a <a href="https://en.bitcoin.it/wiki/Script#Obsolete_pay-to-pubkey_transaction" rel="nofollow">P2PK output</a>, it will appear to be signed incorrectly to your program. (Both are represented by addresses.)</p>
