I have desktop application build in java swing.
Now i want to make an executable for it so it can get install on the client machine.
I don't want to give client the runnable jar file, to avoid its redistribution.
From jar, i want to make the exe with the product key. so that exe can only install on one machine. I google about it but haven't find solution... Please help me.
You can just write a library that can generate and validate your custom license format, or you can use third party software. Then, when a user wants to use some protected feature of your application (possibly the entire application), it checks the license manager and determines how it should proceed.
It's important that your application and the library you use are signed before you distribute them, so that they can't be replaced with impostors.