JET Excelsior create exe for 32 bit - java

I am using jet excelsior for creating an exe file from a java project.
my question is if I can configure the settings to create an exe file that will be installed on a 32 bit computer.
my computer is 64 bit and if I create the exe in it using jet excelsior version 12, the created exe file is failing to be installed on a 32 bit computer.
can someone help me figure this?

There are 2 variants of Excelsior JET distributions. If you want a 32-bit compatible binary you should build with 32-bit distribution
This is info from 32 bit vs 64 bit section of their evaluation page:
Which version to evaluate: 32‑bit or 64‑bit?
As of version 12.0, 32‑bit Excelsior JET provides more features (see Release Notes below), and often delivers better application performance, but the final choice depends on your target platform(s):
Windows: 32‑bit executables install and work normally on 64‑bit Windows systems, so if Windows is your sole target, evaluate the 64‑bit version only if your application requires a large heap and/or needs to integrate with 64‑bit native libraries.
Linux: Installation of 32‑bit libraries on 64‑bit Linuces is often cumbersome, so you may need to provide both 64‑bit and 32‑bit Linux builds to your end users.
OS X: The OS X version of Excelsior JET is 64‑bit only, so you don't really have a choice.

Related

Can I make an installable 32-bit version of my app using jpackage (Java 17)

I've made an application using Java 17 with JavaFX 16 library. Is there a way to make an installable 32-bit version using JPackage of it? Since Java comes always just in 64-bit since Java 9 (same with JavaFX library), I doubt it's not possible, but is there any way to do it?
Yes, you can make an installable 32-bit version of a JavaFX app using jpackage (Java 17).
Azul Zulu provide 32 bit JDK+JavaFX 17 downloads for various platforms. Switch your app to use that and package it using that JDK. When doing so, (I think) it won't be necessary to supply JavaFX Maven dependencies as the JavaFX modules will already be available from the Azul JDK+JavaFX platform distribution.
I won't supply the full steps on how to use jpackage here, as that is documented and discussed elsewhere.
From comments by the original poster, this method worked:
Azul JDK worked perfectly in windows (I'm using windows, and my client (who has 32 bit OS) also uses windows)
OR
JavaFX packages in Maven central are available for various OS and 32-bit or 64-bit platform architectures.
You can select from a specific architecture (or combination of architectures) as a dependency in Maven using a classifier, similar to this example (without the shading).
If you go that route, you need to make sure that you choose the appropriate underlying JDK correctly when doing the packaging (choose a 32-bit JDK build rather than a 64-bit JDK build). Again, Azure Zulu (and possibly other JDK vendors) provide 32-bit JDK builds that you can use.
If a Mac is your target device, Mac OS X does not support 32-bit apps, hence there are no 32 bit Java/JavaFX builds for Mac, only 64 bit builds targeting either Intel chips or the new Apple M1 chips.
Examples of supported architectures for which there are binary JavaFX builds. This is based just on a quick look at the classifier extensions available for binary jars in the JavaFX Maven repository. The comments are just my guesses on what these are, not official documentation:
linux-aarch64 (linux arm v8 64 bit).
linux-arm32 (linux arm v7 32 bit).
linux (linux intel 64 bit).
mac-aarch64 (mac M1 64 bit).
mac (mac intel 64 bit).
win-x86 (win intel 32 bit).
win (win intel 64 bit).
If no classifier is provided, I think the build will examine your current operating environment and choose the best fit.
In addition for some platforms, there are builds with the -monocle suffix in the classifier, also available in 32 bit and 64 bit flavors for various OS types. This is targeted to embedded devices, or headless (no display, e.g. a server) and provides a version of JavaFX that does not use an OS-provided windowing system (i.e. windows are managed purely by JavaFX, not an X-windows window manager and not the Windows OS window manager) and may use Software rendering rather than Hardware rendering. Most people won't need this, but if interested see the (minimal) Monocle documentation.
Gluon provides JavaFX support for various mobile architectures via Gluon Mobile. I believe it is different from a jpackage solution and instead relies on native compilation using GraalVM (but I could be wrong, I haven't investigated it). Regardless of how it works, if you need to target a mobile device for a JavaFX deployment, I advise that you check with Gluon and their mobile development, packaging and deployment solutions.

Generate exe for 32-bit system of Java software

I have built a Java Swing application using Netbeans. I am able to generate a exe for 64-bit systems and it is working perfectly. But I am unable to generate exe for 32-bit systems because I am using a 64-bit system. So what can I do to generate the respective 32-bit exe?
There is an answer for JDK 1.8 here: create 32 bit using 64 bit netbeans javapackager
First you have to install the 32-bit JDK and JRE besides the 64-bit ones, in order to allow the IDE to give 32-bit as an option. (If that's what you want)
Install 32 bit jdk and jre
In netbeans project add a new platform and choose the 32 bit version (restart pc)
Install inno and set path.
run javapackager specifing the 32 bit i.e javapackager -deploy -native exe -B systemWide=true -Bruntime="C:\Program Files (x86)\Java\jdk1.8.0_111\jre" -Bshort cutHint=true -outdir packages
...etc
test with Exe64bitDetector
Another option is to use Launch4j: http://launch4j.sourceforge.net/
https://github.com/fabnicolas/launch4j_exe_tutorial

64 bit Media Framework in Java

I've tried using JMF on a 64 bit environment and 64 bit JDK but to no avail. There isn't a 64 bit jmvfw DLL available for JMF.
My question is: Is there any alternative Media Framework out there that is fully 64 bit or a Java Media Framework 64 bit?
I need it to do camera capturing and video streaming and it has to run on 64 bit environment and JDK.
Thanks
http://www.xuggle.com/downloads
http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/
http://build.xuggle.com/ (source)
They used to supply an installer .exe, now you have to read the documentation on their website to build the 64 bit windows version yourself, if you want a 64-bit linux build, you can get it at the second URL. Xuggle will let you convert/stream video or audio, I believe it uses a 64-bit compile of ffmpeg with Java as a wrapper around it so that you don't have to think about the ffmpeg command line options.
you can have both 32-bit jre/jdk and 64-bit on the same machine. JMF IS 32-bit. But the java application can still be 64-bit, check out JMStudio code for it and use the 64-bit for the java.awt.Image for example and the 32-bit to bring in the images.
JNI code written in c++ and assembler would be a possible solution if you need it, create custom jar ( java libraries ) and link in .d or .dll files as needed.

JOGL 32 vs. 64 bit libraries error

I am new to JOGL. I use Eclipse and I imported JOGL jar and dll (yes, Windows OS). But, when I was searching for JOGL libraries, I downloaded 32 bit version. I have 64 bit OS, but since I can run 32 bit apps I thought it will still be more suitable. But compiler is complaining: Can't load IA 32-bit .dll on a AMD 64-bit platform
Well, first, I thought Java itself is NOT separated by architecture. Yes, I know I am using native libraries to link into Windows OpenGL interface (API), but I just want to include these code snippets into java bytecode, so why compiler cant let me use 32 bit ones? Thanks.
Since you have a 64-bit OS, you installed the 64-bit JVM. The 64-bit JVM cannot use the 32-bit DLLs, so you'll need to either download the 64-bit ones, or alternatively, install the 32-bit JVM on your system and set Eclipse to use that JVM instead.
64bit JVM cannot load 32bit libraries. You need to start 32b JVM to make it work (or get 64b dlls).

64 bits ant.jar

I have installed 64 bits RHEL. I have following questions regarding ant.jar for the system.
I was not able to find ant.jar build with 64 bit JVM from the apache website. Do I have to build it form the source code, if I intend to run the jar on 64 bit JVM?
Would it speed up the build process if I use ant.jar build with 64 bit JVM and run it on 64 bit JVM?
You do not need a special 64 bit build of a pure Java application such as Ant. The ant.jar will run equally on a 32 bit or 64 bit JVM.
The only cases where you would definitely need to run a 64 bit version of a Java application are:
when the application includes native code libraries; i.e. the application is not pure Java, or
when the Java application has been compiled directly to native code; e.g. using gcj.
(It is possible that a poorly written application will be operating system dependent. For example, someone could hard code an application to use OS-specific line separators or pathnames, or to rely on specific OS-specific external commands. But the chances are that even this won't make the application dependent on the OS memory model.)
No, java bytecode is java bytecode, it doesn't matter whether it was built with a 32-bit or 64-bit JDK.
For the same reason, it doesn't matter which operating system it was built on either. For example: a jar built with a 32-bit JDK on 32-bit Microsoft Windows should run just fine on a 64-bit JRE on 64-bit RHEL.

Categories