as you mention you should not use javaprojectwizard as this is an internal class and may be changed without notices.

you can use org.eclipse.ui.wizards.newresource.basicnewprojectresourcewizard to create a project. this does not let you change the wizard pages but you can override the performfinish to do the additional operations you need.

adding the java nature to the project will indeed make the various java preference pages available.

Related Query

More Query from same tag