we always fly in the day prior and get a hotel. There are fewer flights to SJ, so chances of a missed cruise are greater. It's a lovely place, and worth an extra day to explore. We just take a cab to the hotel and then a cab to old san juan for dinner. The Caribe Hilton has a very nice, self-contained complex with a lagoon/beach area. You could stay there and spend a very nice day, eat there or eat in old san juan, then cab the next day to the ship. We have also stayed at Stellaris Marriott, which has a beach area (windy when we were there), and the Sheraton Old San Juan (more for walking around San Juan). San Juan during the day has many tourists and is very safe IMHO. At night, I have never felt unsafe in the central old town area, as there are many upscale restuarants with patrons. I would not walk from the Hilton to old san juan or too far outside of the Marriott.