Why No Java In 10.6.8 for PowerPC?
Mac OS X 10.6 Snow Leopard was targeted at intel based machines exclusively, and thus all Apple Java SE 6 implementations from 10.6-10.6.8 are only compatible with intel 32bit and 64bit.
@Jazzzny provides modern Java 17 for intel 10.6+ over on
this thread.
I have been looking into Java today and the following findings are untested but look to me like a good start and source for a potential fix, for the moment.
WARNING: Altering the system Java or any other system component is highly experimental and is not recommended. Please only do so at your own risk! If you do not need Java then it can be safely ignored.
Reminder to all that WWDC Developer Sessions 2007-2009 are linked in the WikiPost as a research reference.
Java in OS X is a Core Framework and has been built into the operating system since 1998.
Edit: According to @Jazzzny contrary to Apple’s claim that Java is part of the Core Operating System and a ‘Third Pillar’, it is actually not fundamental to the OS itself and the only part of the operating system that is built on and depends on Java is the Java System Preferences itself and “nothing” else.
Each version of the OS is pegged to a specific Apple customised version, although users can install and switch to alternative versions if they like.
Table 1 : J2SE 1.3 Releases on OS X
OS X Release | Java Release | java.version | java.runtime.version |
10.0 | Mac OS X 10.0 | 1.3.0 | 1.3 |
10.1 | Mac OS X 10.1 | 1.3.1 | 1.3.1-root-010902-18:51 |
| 1.3.1 Update 1 | 1.3.1 | 1.3.1-root_1.3.1_020714-12:46 |
10.2 | Mac OS X 10.2 | 1.3.1 | 1.3.1-root-010902-18:51 |
| 1.3.1 Update 1 | 1.3.1 | 1.3.1-root_1.3.1_030709-15:51 |
10.3 | Mac OS X 10.3 | 1.3.1 | 1.3.1-root_1.3.1_030912-19:52 |
| Java Security Update (4.0) | 1.3.1_16 | 1.3.1_16-root_1.3.1_050825-11:50 |
10.4 | Mac OS X 10.4 | 1.3.1_15 | 1.3.1_15-root_1.3.1_050320-16:33 |
| 1.3.1 and 1.4.2 Release 2 | 1.3.1_16 | 1.3.1_16-root_1.3.1_050718-17:36 (PowerPC)
1.3.1_16-root_1.3.1_060113-11:57 (Intel) |
Note: Mac OS X 10.4 for Intel contains a J2SE 1.3 runtime for PPC, but running it under Rosetta is unsupported.
Note: Mac OS X 10.5 and later do not include J2SE 1.3.
Table 2 : J2SE 1.4 Releases on OS X
OS X Release | Java Release | java.version | java.runtime.version |
10.2 | Mac OS X 10.2 | 1.4.1_01 | 1.4.1_01-39 |
| 1.4.1 Update 1 | 1.4.1_01 | 1.4.1_01-69.1 |
10.3 | Mac OS X 10.3 | 1.4.1_01 | 1.4.1_01-99 |
| 1.4.2 | 1.4.2_03 | 1.4.2_03-117.1 |
| 1.4.2 | 1.4.2_03 | 1.4.2_03-117.1 |
| 1.4.2 Update 1 | 1.4.2_05 | 1.4.2_05-141 |
| 1.4.2 Update 2 | 1.4.2_05 | 1.4.2_05-141.3 |
| Security Update 2005-002 | 1.4.2_05 | 1.4.2_05-141.4 |
| Java Security Update (4.0) | 1.4.2_09 | 1.4.2_09-233 |
| Update 5 | 1.4.2_12 | 1.4.2_12-269 |
10.4 | Mac OS X 10.4 | 1.4.2_07 | 1.4.2_07-215 |
| 1.3.1 and 1.4.2 Release 2 | 1.4.2_09 | 1.4.2_09-232 (PowerPC)
1.4.2_09-239 (Intel) |
| Release 5 | 1.4.2_12 | 1.4.2_12-269 |
| Release 6 | 1.4.2_16 | 1.4.2_16-b05-303 |
| Release 7 | 1.4.2_18 | 1.4.2_18-b08-310 |
| Release 8 | 1.4.2_18 | 1.4.2_18-b08-310 |
| Release 9 | 1.4.2_21 | 1.4.2_21-b01-326 |
10.5 | Mac OS X 10.5 | 1.4.2_16 | 1.4.2_16-b05-302 |
| Java for Mac OS X 10.5 Update 2 | 1.4.2_18 | 1.4.2_18-b08-314 |
| Java for Mac OS X 10.5 Update 3 | 1.4.2_18 | 1.4.2_18-b08-314 |
| Java for Mac OS X 10.5 Update 4 | 1.4.2_21 | 1.4.2_21-b01-324 |
| Java for Mac OS X 10.5 Update 5 | 1.4.2_22 | 1.4.2_22-b02-329 |
| Java for Mac OS X 10.5 Update 6 | disabled | disabled |
| Java for Mac OS X 10.5 Update 7 | disabled | disabled |
| Java for Mac OS X 10.5 Update 8 | disabled | disabled |
| Java for Mac OS X 10.5 Update 9 | disabled | disabled |
| Java for Mac OS X 10.5 Update 10 | disabled | disabled |
Note: The "Java for Mac OS X 10.5 Update 6" release disables J2SE 1.4 by default, but leaves the existing 1.4 installation present.
Note: Mac OS X 10.6 does not include J2SE 1.4.
Table 3 : J2SE 5.0 Releases on OS X
OS X Release | Java Release | java.version | java.runtime.version |
10.4 | 5.0 Release 1 | 1.5.0_02 | 1.5.0_02-56 |
| 5.0 Release 3 | 1.5.0_05 | 1.5.0_05-83 |
| 5.0 Release 4 | 1.5.0_06 | 1.5.0_06-112 |
| Release 5 | 1.5.0_07 | 1.5.0_07-164 |
| Release 6 | 1.5.0_13 | 1.5.0_13-b05-241 |
| Release 7 | 1.5.0_16 | 1.5.0_16-b06-275 |
| Release 8 | 1.5.0_16 | 1.5.0_16-b06-275 |
| Release 9 | 1.5.0_19 | 1.5.0_19-b02-306 |
10.5 | Mac OS X 10.5 | 1.5.0_13 | 1.5.0_13-b05-237 |
| Java on Mac OS X 10.5 Update 2 | 1.5.0_16 | 1.5.0_16-b06-284 |
| Java on Mac OS X 10.5 Update 3 | 1.5.0_16 | 1.5.0_16-b06-284 |
| Java on Mac OS X 10.5 Update 4 | 1.5.0_19 | 1.5.0_19-b02-304 |
| Java on Mac OS X 10.5 Update 5 | 1.5.0_20 | 1.5.0_20-b02-315 |
| Java on Mac OS X 10.5 Update 6 | 1.5.0_22 | 1.5.0_22-b03-333-9M3125 |
| Java on Mac OS X 10.5 Update 7 | 1.5.0_24 | 1.5.0_24-b02-357-9M3165 |
| Java on Mac OS X 10.5 Update 8 | 1.5.0_26 | 1.5.0_26-b03-376-9M3263 |
| Java on Mac OS X 10.5 Update 9 | 1.5.0_28 | 1.5.0_28-b04-382-9M3326 |
| Java on Mac OS X 10.5 Update 10 | 1.5.0_30 | 1.5.0_30-b03-389-9M3425 |
Note: Mac OS X 10.6 does not include J2SE 5.0.
Table 4 : Java SE 6 Releases on OS X
OS X Release | Java Release | java.version | java.runtime.version |
10.5 | Java for Mac OS X 10.5 Update 1 | 1.6.0_05 | 1.6.0_05-b13-120 |
| Java for Mac OS X 10.5 Update 2 | 1.6.0_07 | 1.6.0_07-b06-153 |
| Java for Mac OS X 10.5 Update 3 | 1.6.0_07 | 1.6.0_07-b06-153 |
| Java for Mac OS X 10.5 Update 4 | 1.6.0_13 | 1.6.0_13-b03-211 |
| Java for Mac OS X 10.5 Update 5 | 1.6.0_15 | 1.6.0_15-b03-226 |
| Java for Mac OS X 10.5 Update 6 | 1.6.0_17 | 1.6.0_17-b04-248-9M3125 |
| Java for Mac OS X 10.5 Update 7 | 1.6.0_20 | 1.6.0_20-b02-279-9M3165 |
| Java for Mac OS X 10.5 Update 8 | 1.6.0_22 | 1.6.0_22-b04-307-9M3263 |
| Java for Mac OS X 10.5 Update 9 | 1.6.0_24 | 1.6.0_24-b07-330-9M3326 |
| Java for Mac OS X 10.5 Update 10 | 1.6.0_26 | 1.6.0_26-b03-384-9M3425 |
10.6 | Mac OS X 10.6 | 1.6.0_15 | 1.6.0_15-b03-219 |
| Java for Mac OS X 10.6 Update 1 | 1.6.0_17 | 1.6.0_17-b04-248-10M3025 |
| Java for Mac OS X 10.6 Update 2 | 1.6.0_20 | 1.6.0_20-b02-279-10M3065 |
| Java for Mac OS X 10.6 Update 3 | 1.6.0_22 | 1.6.0_22-b04-307-10M3261 |
| Java for Mac OS X 10.6 Update 4 | 1.6.0_24 | 1.6.0_24-b07-334-10M3326 |
| Java for Mac OS X 10.6 Update 5 | 1.6.0_26 | 1.6.0_26-b03-384-10M3425 |
| Java for Mac OS X 10.6 Update 6 | 1.6.0_29 | 1.6.0_29-b11-402-10M3527 |
| Java for Mac OS X 10.6 Update 7 | 1.6.0_31 | 1.6.0_31-b04-413-10M3623 |
| Java for Mac OS X 10.6 Update 8 | 1.6.0_31 | 1.6.0_31-b04-415-10M3635
1.6.0_31-b04-415-10M3646 |
| Java for Mac OS X 10.6 Update 9 | 1.6.0_33 | 1.6.0_33-b03-424-10M3720 |
| Java for Mac OS X 10.6 Update 10 | 1.6.0_35 | 1.6.0_35-b10-428-10M3811 |
| Java for Mac OS X 10.6 Update 11 | 1.6.0_37 | 1.6.0_37-b06-434-10M3909 |
| Java for Mac OS X 10.6 Update 12 | 1.6.0_39 | 1.6.0_39-b04-442-10M4008 |
| Java for Mac OS X 10.6 Update 13 | 1.6.0_41 | 1.6.0_41-b02-445-10M4107 |
| Java for Mac OS X 10.6 Update 14 | 1.6.0_43 | 1.6.0_43-b01-447-10M4203 |
| Java for Mac OS X 10.6 Update 15 | 1.6.0_45 | 1.6.0_45-b06-451-10M4406 |
| Java for Mac OS X 10.6 Update 16 | 1.6.0_51 | 1.6.0_51-b11-457-10M4509 |
| Java for Mac OS X 10.6 Update 17 | 1.6.0_65 | 1.6.0_65-b14-462-10M4609 |
10.7 | Java for Mac OS X 10.7 | 1.6.0_26 | 1.6.0_26-b03-383-11A511
1.6.0_26-b03-383-11A511c |
| Java for Mac OS X 10.7 Update 1 | 1.6.0_29 | 1.6.0_29-b11-402-11M3527 |
| Java for OS X 2012-001 | 1.6.0_31 | 1.6.0_31-b04-413-11M3623 |
| Java for OS X 2012-002 | 1.6.0_31 | 1.6.0_31-b04-414-11M3626 |
| Java for OS X 2012-003 | 1.6.0_31 | 1.6.0_31-b04-415-11M3635
1.6.0_31-b04-415-11M3646 |
10.7/10.8 | Java for OS X 2012-004 | 1.6.0_33 | 1.6.0_33-b03-424-11M3720 |
| Java for OS X 2012-005 | 1.6.0_35 | 1.6.0_35-b10-428-11M3811 |
| Java for OS X 2012-006 | 1.6.0_37 | 1.6.0_37-b06-434-11M3909 |
| Java for OS X 2013-001 | 1.6.0_41 | 1.6.0_41-b02-445-11M4107 |
| Java for OS X 2013-002 | 1.6.0_43 | 1.6.0_43-b01-447-11M4203 |
| Java for OS X 2013-003 | 1.6.0_45 | 1.6.0_45-b06-451-11M4406 |
| Java for OS X 2013-004 | 1.6.0_51 | 1.6.0_51-b11-457-11M4509 |
| Java for OS X 2013-005 | 1.6.0_65 | 1.6.0_65-b14-462-11M46 |
Note: Java SE 6 for Mac OS X 10.5 is only available on 64-bit capable Intel Macs.
**Developer Previews targeting 10.4-10.5 PowerPC are also available.
Source:
https://developer.apple.com/library/archive/navigation/index.html?filter=java
The operating system itself has a preferred version that is linked to at /System/Library/Frameworks… This is the version that should not be changed from the OS default version number. We do need to update the system Java SE 6 to be compatible with PowerPC.
Paths for other versions are safe to link to from /usr/bin/java and /Library/Java/Home.
Java SE 6 from the Snow Leopard 2008 Developer Preview onwards is the only officially supported version of Java, and only supports X86/X86_64.
The officially supported version for Leopard is SE 5.0, however, Apple did release separate developer previews for Tiger and Leopard (PowerPC) for their Java SE 6 implementation.
Java SE 6 Release 1 Developer Preview 6
This version will not install directly, however there is this
useful guide which details step-by-step how to manually install Java SE 6 on Leopard, and
may (untested and speculative) work for us in theory to replace the intel only implementation on our current build of 10.6.8 for PowerPC:
PowerPC or 32-bit Intel
As the developer preview installer won’t work properly on Leopard, instead we’ll extract the JVM and install it by hand. First, move aside the Java 6 for 64-bit Intel that’s already installed, but non-functional.
sudo mv /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents{,.old}
sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/MacOS
sudo mv /System/Library/Frameworks/JavaVM.framework/Versions/Current{,.old}
- sudo mv /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0{,.old}
(Ah, remember back when all you needed was an admin password to muck about in the system files with wild abandon? Good times.)
Next, use
Pacifist to extract from the installer package the path /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0 and copy it to the same location on disk. (You can also burrow into the package using right-click and “Show Package Contents”, then double-click to extract “Archive.pax.gz” and find said path in the newly-created “Archive” folder.)
sudo cp -R ~/Downloads/Archive/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/ \
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/
- sudo cp -pR ~/Downloads/Archive/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0 \
- /System/Library/Frameworks/JavaVM.framework/Versions/
You’ll then create a new “Current” symlink pointing at the folder you just copied.
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo ln -s 1.6.0 Current
Now, java -version will show that Java 6 is active.
$ java -version
java version "1.6.0-dp"
Java(TM) SE Runtime Environment (build 1.6.0-dp-b88-34)
Java HotSpot(TM) Core VM (build 1.6.0-b88-17-release, interpreted mode, sharing)
There is also a Java 6 and 7 implementation created by
@JoyBed and detailed on this forum available to download
from here.
In addition
@barracuda156 has made OpenJDK8 available as well for those wanting to add a more recent version of Java to their system for development purposes (as a
port)
There are other features and benefits to fixing the SE 6 implementation in the OS, particularly for 64bit but even 32bit, including far better integration with the GUI and with scripts.
A large part of Safari ‘Crash Resistance’ and stability on Snow Leopard is due to the ‘Out-Of-Browser’ plugin implementation. If the plugin crashes then it doesn’t take down the browser.
Another reason it is important to adhere to the correct system version is for compatibility with legacy apps, indeed Apple even provided an update for more recent versions of MacOS to address this issue on modern systems.