I don't want to be dependent on that java is installed on the system or not
Our product already ships internally with a vm so the user doesn't have to install any java or need to have any java installed.
But this i also want for my installer of our product, there should be no need to have java there on the system to install the product, is this possible with Launch4J?
Because it is always tricky when reading the docs, you can bundle a jre, but what does that mean? Does the installer use that itself?
Yes, a JRE is necessary to run the installer, but you can bundle a JRE with install4j, so no "global installation" of a JRE is requried.
Related
We need to migrate our OpenJDK-based application to Zulu, which uses install4j.
What approaches have the best long-term viability, in terms of EJ support and feasibility:
Offer pre-built bundles for download?
Install Zulu on a machine and run some scripts to massage the Zulu JDK into a JRE bundle?
Cross-platform capabilities for option 2., e.g. unpack a Mac Zulu on a Windows machine and run a script to generate a Mac bundle?
As of install4j 8.0.7 there is no JDK provider for Zulu in install4j.
You can use "Project->Create a JRE bundle" or the command line tool `bin/createbundle" to create JRE bundles from Zulu installations.
There is no way to create JRE bundles in a cross-platform way for pre-created JRE bundles.
For now it seems to be impossible the decouple the jre for the main application from the jre used by the installer/updater itself. But sometimes there is a reason to use two different jre/jdk. Maybe the application needs java 8 and the installer is built with java 7 or older. Or maybe there are two applications to install which use two different java versions. Another idea is to create some kind of a meta installer that decide during runtime whether to install 32bit or 64bit java depend on the underlying platform architecture? The installer itself then has to use a 32bit version. So what about to decouple it and configure the jre for the application launchers itself independend from the java version of the installer/updater?
Starting with version 6.1.2 the launcher wizard will have an option to configured the JRE search sequence differently from the installer.
The setting will be available under the "Java invocation->Override Java version" step.
The JRE download wizard in install4j only offers Linux and Windows JREs. I need to build a media file that bundles a Solaris JRE. install4j supports building custom JRE bundles but it's JRE Bundle wizard states:
"Please note that the JRE Bundle wizard can only create JRE bundles
for the platform you're running on."
This seems like a serious omission as compared to the other multi-platform install buliders (i.e. InstallAnywhere and InstallBuilder) both of which provide bundled Solaris JREs.
Can I not just unzip/tar a Solaris JRE on my Linux build box and bundle it? Or is there a limitation of the mechanism used to bundle it?
Even though we support Solaris, Solaris boxes are in limited supply.
Can I not just unzip/tar a Solaris JRE on my Linux build box and bundle it?
You would have to create the tar.gz file for the bundle manually as explained here (at the bottom of the page).
However, I would rather suggest adding a requirement that Java is installed on the Solaris box. Bundling a JRE on Solaris is somewhat risky since particular JRE versions require certain OS patches.
I have two JRE in my system. One is 32-bit and the other one 64-bit. In Eclipse I can configure both and choose which one to use when running my application.
I'm wondering if I can do the same thing in Netbeans. I've tried to go to Project Properties, Libraries and then tried to configure a new JRE there, through Manage Platforms, but it doesn't accept the directory of my JRE. How should I proceed?
Be aware that I'm talking about JRE, and not JDK ;)
EDIT: I managed to make it work by downloading a new 32-bit JDK and selecting its directory. I still couldn't make it accept a JRE directory.
Whether or not you can run Netbeans with just the JRE depends on what bundle you have downloaded. In Netbeans 7 only C/C++ and PHP bundles can be run with the JRE.
Older versions of Netbeans include more languages under this JRE umbrella, but the principle is the same.
The JDK contains the JRE plus tools to debug and compile code, so if you're doing anything Java based apart from just running the IDE, netbeans depends on the JDK.
I'm trying to get an environment set up to match a client. They're using JBoss 4.0.5. The installation docs indicate I need to install the JDK 5.0 separately. As far as I can tell, the JDK installation is tied to the GlassFish app server--installing the JDK gets me GF and uninstalling GF removes the JDK. Is there a way to get just the JDK?
The JDK can be installed and used separately from any other application and you can have multiple versions running on the same machine. (Which is usually the case when working with different clients/projects).
If your JDK installation is tied to the GlassFish application server, you probably used the "Java EE SDK" installer ( http://www.oracle.com/technetwork/java/javaee/downloads/index.html ). This bundles everything you need for starting up development on JavaEE.
You can get the normal, JDK-only installer at http://www.oracle.com/technetwork/java/javase/downloads/index.html (go to Previous Releases for JDK 5) with which you can install only the JDK at a separate location on your computer.
After installing JDK 5, you just have to tell JBoss to use that one instead of the GlassFish/System Java version. For this only setting the JAVA_HOME path to desired JDK for the JBoss startup scripts should be enough.
You can have as many JDK/JRE installations on your computer as you need. Just be sure that for each application which requires a specific version you configure its JAVA_HOME correctly.