Because my experience is with Java Web Start, which is designed to run desktop applications. with a graphical interface, please think that my advice is mainly aimed at these types of applications.
Other people commented on the specifics of the OS for the EXE. I always need to wonder why people choose Java for developing desktop applications for Windows. Because Visual Studio software for Windows would probably create both a GUI (without x-plat Java layouts to bend its head) and deployments (just guessing that it could create an EXE).
OTOH only you can say what is the best development tool / language for this use case.
Regarding the potential disadvantages of creating an EXE, I note in JavaFAQ on an EXE .
There are a number of good reasons not to pack your application into an executable file. Daniel Sjöblom notes:
- Most likely, it will not be faster. Modern virtual machines do not interpret bytecodes; in fact, they use the JIT compiler to create their own compiled code. Check out the Sun website for more information on JIT compilers.
- Static compilation increases the size of your application many times over, since all the libraries you use must be associated with the application.
- You are losing “free” updates for your program. Anytime a user loads a new faster virtual machine, your application gets acceleration. If you use exe, you will not get this benefit.
John A. Cruz details some of the additional steps in the development process required to create an exe. He points out that developers using native exe should:
- Confirm the latest version of the compilation product with the vendor. If critical errors are found, they cannot be used to create a delivery product until they are resolved. Work to be performed every time an audit comes from a vendor.
- Submit your software through a QA cycle. As soon as the engineer thinks that everything is done, they need to be checked. Therefore, each delivery version and product update must go through a full testing cycle.
- In addition, since the built-in compilation is designed for each target platform, the QA cycle must be performed completely for each target platform, which multiplies the required effort.
- Shelf. Maybe not so much right now, but maybe.
- Then it is necessary that all clients are updated to the necessary version. Either there are free updates (in this case, the business must absorb the costs of renewal updates), or, as an alternative, not all customer updates need to be processed.
John notes that: when you send standard Java bytecodes, VM problems are responsible for the VM platform or provider. However, when you send compiled binaries, they become your responsibility (even if they are actually errors in the vendor compilation product).
...
Of course, my first choice is to deploy applications with a rich Java client. uses Java Web Start . Including some advantages / features of a web start as a dot:
JWS provides many attractive features, including but not limited to:
- screensaver screensavers
- desktop integration
- file associations
- automatic update (including lazy downloads and software update control)
- splitting Aboriginal and other resources into a platform, architecture, or version of Java,
- runtime configuration (minimum J2SE version, runtime parameters, RAM, etc.).
- easy sharing management with extensions ..
I decided to highlight automatic updates with a gradual transition from applications. comes on disk in applications. over the network, automatic updates are becoming more common. JWS still provides a better upgrade experience (very customizable, mostly transparent to the user). I have seen.
And, of course, JWS runs on a desktop OS for which Java is available.
Update
.. Java web applications need an internet connection?
(Note that this is the name "Java Web Start".)
Of course. At least for the initial installation. You can update checks to continue running a previously installed version of the application. if the user is not currently connected.
But then (in my estimation) there are more machines (for example, netbooks) without a CD / DVD drive than without Internet connections. If you want to sell to a wider market, look at the network to deliver the application.