The only way we were able to get J seats from MIA to Barcelona was MIA-MAD on IB and then take the high-speed train from there to Barcelona (very nice, but not cheap). We then got Y IB exit row seats back from BCN since we weren't going to sleep anyway on the return flight to MIA. As was suggested, spending a couple of days pre-cruise in Madrid is nice if you have the time. If not, you could do what we did, and take a taxi or bus directly from MAD to the train station. Doing this could also let you use the miles you already have.