The Question of Java

  • Please make sure you are posting in the correct place. Server ads go here and modpack bugs go here
  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

Unuson

New Member
Jul 29, 2019
11
0
0
So what I've learned about the Java versions is that Minecraft itself prefers to use a 32-bit version over a 64-bit version of Java, which is why both cannot be present for the FTB modpacks that use 64-bit.

The obvious problem would be browser compatibility with 64-bit Java, since there are many websites and browsers that do not support a 64-bit version (i.e. Firefox). If a site requires a 32-bit version of Java, it would require reinstalling the 32-bit version and the inability to run FTB while using a Java-related website. You could potentially just move the 32-bit Java files to a different location to disable the 32-bit version, and move them again to re-enable it (registry files aside). So, what are people's thoughts on this matter? Is it something that Mojang could ever address, such as an option to change Java version in-launch?
 

Tristam Izumi

New Member
Jul 29, 2019
1,460
0
0
Firefox doesn't like 64-bit Java? Since when? I've been exclusively using both Firefox and 64-bit Java for years with no issues. On Windows XP 64 no less. So if anyone should be getting problems, it's me.
 

TheAwesomater

New Member
Jul 29, 2019
243
0
0
Monsanto probably could change the launcher, but 32 bit java is quite old now and I think they expect it will disappear over the next few years.
 

InThayne

Well-Known Member
Oct 14, 2013
162
54
54
Hmmm looks like I have both java versions (32 and 64 bit) of 1.07_45 installed. Minecraft routinely uses the 64-bit version and the browsers use whatever they like. No problems here.
 

Hambeau

Over-Achiever
Jul 24, 2013
2,598
1,531
213
Hmmm looks like I have both java versions (32 and 64 bit) of 1.07_45 installed. Minecraft routinely uses the 64-bit version and the browsers use whatever they like. No problems here.

This isn't unusual... Many older Apps still use 32 bit software, even though you would have to look far and wide to find brand new 32 bit Windows computers outside specialty industries such as POS (Point Of Sale) cash registers, and then because rewriting the cash register software has no point since nobody expects daily receipts into the 4 terabuck range.
 

Unuson

New Member
Jul 29, 2019
11
0
0
Firefox doesn't like 64-bit Java? Since when? I've been exclusively using both Firefox and 64-bit Java for years with no issues. On Windows XP 64 no less. So if anyone should be getting problems, it's me.
According to Java detection sites (such as BrowserSPY), Java is not detectable or seen as a missing applet. From what I know, there is a 64-bit browser version of Firefox for Linux/Mac users, but PC users only have access to a 32-bit Firefox, which does not detect the 32-bit JRE as a plugin. If it lists JRE as a plugin or applet on your browser, then it must be something wrong with my browser.

Hmmm looks like I have both java versions (32 and 64 bit) of 1.07_45 installed. Minecraft routinely uses the 64-bit version and the browsers use whatever they like. No problems here.
Tech Support recommends uninstalling 32-bit if you have it installed, and a user also recommended it as well: "You should have only one version of Java 64bit and no version of Java 32bit and no jdk. That is what is recommended anything else could give you errors." (from SSP World Creation Crash thread in Tech Support).
 

Bomb Bloke

New Member
Jul 29, 2019
612
0
0
This isn't unusual... Many older Apps still use 32 bit software, even though you would have to look far and wide to find brand new 32 bit Windows computers outside specialty industries such as POS (Point Of Sale) cash registers, and then because rewriting the cash register software has no point since nobody expects daily receipts into the 4 terabuck range.
Erm. You know the instruction/address size of a system has very little to do with the maximum data value size, right...? There's nothing stopping you from using eg quad floats in a 16bit environment if you so choose.
 

Unuson

New Member
Jul 29, 2019
11
0
0
Erm. You know the instruction/address size of a system has very little to do with the maximum data value size, right...? There's nothing stopping you from using eg quad floats in a 16bit environment if you so choose.
JRE 64-bit simply allows you to allocate more RAM for java-related applications; for JRE 32-bit, it is a software limit and not a hardware limit.
 

Hambeau

Over-Achiever
Jul 24, 2013
2,598
1,531
213
JRE 64-bit simply allows you to allocate more RAM for java-related applications; for JRE 32-bit, it is a software limit and not a hardware limit.

It's a hardware limit in the fact that while an Intel/AMD 64 bit CPU can run both 32 and 64 bit Java, a 32 bit CPU will NEVER run 64 bit Java. 64 bit java also supports 64 bit integers and addressing, while 32 bit Java only supports 32 bit integers and addressing.

32 bit Java doesn't allow for memory allocation because it was written for 32 bit windows (and the hardware it runs on) which only supports a maximum of 4GB total ram (with about 1GB reserved for the OS plus the room needed for Java and the App) while 64 bit versions since XP have always supported at least 128GB and since Win 8 has supported 512GB for the Pro and Enterprise versions.
 
Last edited:
  • Like
Reactions: Unuson

Hambeau

Over-Achiever
Jul 24, 2013
2,598
1,531
213
Erm. You know the instruction/address size of a system has very little to do with the maximum data value size, right...? There's nothing stopping you from using eg quad floats in a 16bit environment if you so choose.

Nothing except quadrupling the time it takes to perform the exact same operation.

Quad floats in a 16 bit environment means four load operations/floating point number, plus overhead to make sure over/underflows are performed correctly... for each number involved in the calculation.

Same operation in a 32 bit environment means only two loads and only having to verify integrity between the two memory addresses representing each number, for every number in the calculation.

Funny, in my 64 bit environment I just load each number once and don't have to verify that over/underflows within each number occur correctly.

As someone who wrote my own floating point routines in machine code in the 8-bit days ( I started working professionally with microprocessors in 1977 ) I can only guess that you've never been exposed to the overhead involved in floating point and before you mention that floating point processors are built into CPUs today I would caution you to recall that a 32 bit CPU can only access it's internal FPU's 32 bit registers via it's 32 bit data bus while a 64 bit CPU has an FPU with 64 bit registers and data bus.