Minimum number of native-code combos required for a cross-platform Java application - operating-system

I have a Java application which uses some native code. This application needs to run on the largest set of machine-OS-JVM platform combos, but here are the main ones I'm targetting initially:
Machine types: 32-bit and 64-bit
OSes: Windows, Linux, and Mac
JVMs: 32-bit and 64-bit
Question 1: Which of the following combos are valid by themselves (without even bringing my application into the picture)? It'd be great to also know a one-line reason for the invalid combos other than simply knowing they are invalid.
====================================
hw os jvm valid?
====================================
1. 32 32 32 yes
2. 32 32 64
3. 32 64 32
4. 32 64 64
5. 64 32 32
6. 64 32 64
7. 64 64 32
8. 64 64 64 yes
====================================
By 'valid', I expect that not only the application should run, it should also run flawlessly - without even intermittent crashes, hangups, slowness, etc
Question 2: I know I can use Java's System properties to determine the values of the above parameters (hw, os, and jvm) and then dynamically load the appropriate version of my native code. But I'd like to know the minimum number of combo versions I can ship my application with, given that my application does not need to use the extended memory nor any potential speed improvements offered by 64-bit platforms.

In general the width of the hardware must be greater than or equal to the width of the os which must be greater than or equal to the width of the application. Also the application is generally oblivious to the maximum width of the hardware so there are only three configs that matter:
32 bit os - 32 bit app
64 bit os - 32 bit app
64 bit os - 64 bit app
Now if the app is 32 bit it normally doesn't matter if the os is 64 bit. (it can if you're working with drivers or things that work inside the os) So you need one 32 bit and one 64 bit version per platform. So six versions in total.

Related

Why should someone update to the 64 bit version of Vs Code?

All the info I can find basically says the 64 bit version is available but I can't find any info on what exactly that means? How is it different from the 32bit version?
From the release notes:
Large file supportĀ - Improved performance for large files, no size limit on 64-bit machines.
64-bit Windows buildsĀ - Use your computer's full address space with the 64-bit builds.
For example, to open large files (the 32 bit version has now a limit of 300 MB, previously it was 50 MB) you'll need the 64 bit version.

32 bit vs 64 bit MATLAB executable applications

I have a 64 bit MATLAB installed on my computer.
I am not allowed to install a 32 bit MATLAB on my machine.
I wrote a code and converted it to an executable using application compiler.
Now employees with 32 bit operating systems can not run the executable.
The question is:
Is there a way to create a 32 bit application using a 64 bit MATLAB?
(again, I am not allowed to install a 32 bit MATLAB on my machine)

Firebird database, .net provider, how does it select the 32 or the 64 bit fbemeb.dll?

So there is this cool database called firebird, and it can be used embedded. the .net provider (as far as I understand) it uses the fbembed.dll, which comes in 2 flavors: 32 and 64 bits.
How does the .net data provider locates the correct one for the environment that is running in?
It does not select by itself. You have to have that 32bit/64bit dll in the current folder for the provider to load.
If the application is running in 32bit environment (32bit application in 32/64bit OS or AnyCPU application in 32bit OS), the provider will load DLL and expect it to be 32bit. Otherwise you will get bad image format error. Same applies for 64 bit environment.
For this reason, I always create MSI's of my application in two flavours - one with 32 bit dll and other with 64 bit. The application itself remains the same (AnyCPU) so the OS determines what DLL is required. I have been using Firebird embedded for more than 8 years now, and that practice has been easiest for me to follow.

oracle 32 bit client on a windows 7 64 bit computer

Trying to install Oracle 9i (32bit) client on a Windows 7 64bit computer. Seems to install fine, but when trying to run anything, such as the Net Configuration Assistant, it doesn't do anything, no errors, and nothing started in the background.
So the question is:
Can the 32 bit client of Oracle be installed on a 64 bit Windows 7 PC? Or does it need to be a 64 bit client?
You can install a 32 bit client, and if your software is 32 bit, you need to install the 32 bit client to use it, even on a 64 bit system.

Where is the 64 bit NetBeans Design GUI?

I had to replace jre and jdk 32 versions with 64 bit version since I am developing on a 64 bit machine and needed to get serial IO working.
The 64 bit NetBeans Design GUI seems to have vanished since I upgraded from 32 to 64 bit.
Solved: uninstalled then re-installed NetBeans.