Jump to content

Recommended Posts

Posted

here is a way to setup oracle's java 7 to run bundled apps

like the 'DSDT Editor' without install java 6 from apple


download java from oracle and install jdk-7u25-macosx-x64.dmg...


now, we have to create some folder/links for the missing jvm server lib and

have to add at least the 'jni' and 'app bundled' capabilities into the package info.


here's my bash history after the installation:

cd /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/
sudo ln -s ../ bundle
cd bundle
sudo mkdir Libraries
cd Libraries
sudo ln -s ../Home/jre/lib/server/libjvm.dylib libserver.dylib
sudo /usr/libexec/PlistBuddy -c "Add :JavaVM:JVMCapabilities:1 string JNI" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Info.plist 
sudo /usr/libexec/PlistBuddy -c "Add :JavaVM:JVMCapabilities:2 string BundledApp" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Info.plist 

now the 'JavaApplicationStub' seems to work with java 7...

you may have to edit the java applications Info.plist and point to JVMVersion 1.7


these version numbers may change like jdk...jdk,

but uninstalling seems easy... for example, to uninstall 7u6:

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk

these values are inside the lastest apple 1.6 jdk

<key>JVMCapabilities</key>
<array>
<string>JNI</string>
<string>BundledApp</string>
<string>WebStart</string>
<string>Applets</string>
<string>CommandLine</string>
</array>


// edit

if you want the java preferences back in utilities, just

get and mount JavaForMacOSX10.6Update3.dmg from apple

mkdir ~/Desktop/java6u3
xar -xf /Volumes/Java\ For\ Mac\ OS\ X\ 10.6\ Update\ 3/JavaForMacOSX10.6Update3.pkg -C ~/Desktop/java6u3
cd ~/Desktop/java6u3/JavaForMacOSX10.6Update3.pkg/
cat Payload | gunzip -dc | cpio -i
sudo mv Applications/Utilities/Java\ Preferences.app /Applications/Utilities/
cd ~/Desktop/
rm -rf java6u3

// edit 2

some apps still have the 32-bit stub :/

to get the 64-bit java stub i downloaded JavaForOSX2013-004.dmg ...

mkdir ~/Desktop/java64
xar -xf /Volumes/Java\ for\ OS\ X\ 2013-004/JavaForOSX.pkg -C ~/Desktop/java64
cd ~/Desktop/java64/JavaEssentials.pkg/
cat Payload | gunzip -dc | cpio -i
mv System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub ~/Desktop/
cd ~/Desktop/
rm -rf java64

cause this file has the x86_64 arch

file JavaApplicationStub 
JavaApplicationStub: Mach-O universal binary with 2 architectures
JavaApplicationStub (for architecture x86_64):	Mach-O 64-bit executable x86_64
JavaApplicationStub (for architecture i386):	Mach-O executable i386

now replace the stub and add 'x86_64' to the 'JVMArchs' array inside the applications info.plist…

(/usr/libexec/PlistBuddy -c "Add :Java:JVMArchs:0 string 'x86_64'" ...)

xio antiben

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...