Recently, I wrote "it's all about saving face and creating future commercial viability. It's likely SkyTeam can provide the latter better than oneworld." So why did JAL choose oneworld and American? I'll give you two reasons.
Joint Venture Approval There's no question that JAL's goal was to create a Transpacific joint venture with either American or Delta. While I tend to think that a joint venture with Delta would have been more profitable for the airline, there were growing questions about whether that would have been able to gain approval.
If JAL went with Delta, that would effectively turn Japan into a two airline market with oneworld and American retaining a token presence. That alarmed some regulators, and it's possible that it wouldn't have been approved. If it hadn't been approved, the entire open skies agreement would have fallen apart and JAL would have been in worse shape.
By choosing American, JAL has effectively guaranteed that the joint venture will be approved and there will now be three strong carriers and alliances in Japan.
Transition Costs Joining an alliance is quite costly and time-consuming, but switching alliances becomes even more painful. If you think about it, you'll see that it's a very rare occurrence. Mexicana left Star Alliance for oneworld, Continental (CAL) left Skyteam to cozy up with United (UAUA) and Star, and Aer Lingus left oneworld to go it alone, but those are the highest profile changes that we've seen.
The technical costs alone would be enough to scare off any airline, but that's just the tip of the iceberg. A switch tends to include massive route realignments and facility issues. Remember, oneworld is mostly consolidated in a single facility at Narita. So for an airline that's hemorrhaging cash, the costs of making the change are probably just not worth it.