A "dinner jacket" outfit is always acceptable formalwear. In fact, a "tuxedo" actually is just a style of dinner jacket that inherited the name of the establishment where it was first introduced (which I understood to be "The Tuxedo Club" but the etymology in my dictionary shows as "Tuxedo Park" -- not that it really matters in the context of this discussion).
That said, dinner jackets in summer culors (i. e., white or pastel) are generally worn only in the "summer" season or in the tropics -- though the definition of the "summer" season in this context may vary with latitude. Since most cruises occur within these areas or times of year, a white dinner jacket is fine.
YES. Even a nice Business suit. Don't spend a lot of money on something that you will not wear a lot after the cruise. We found a great buy on a Tuxedo at a Mr. Formal Clearance store. Seems the formal wear is rented out for a limited time, then sold at a fraction of the new price. We met folks at our dinner table who purchased all their formal wear off of E-Bay !!!Very Nice too