How to get JDK 1.5 on Mac OS X

后端 未结 8 397
眼角桃花
眼角桃花 2020-12-09 08:45

I\'ve got to write some code for a legacy application that is still running JDK 1.5. Unfortunately, it looks like OS X doesn\'t actually have a 1.5 JDK installed; it ju

相关标签:
8条回答
  • 2020-12-09 09:18

    You need a older version of OS X for that.

    0 讨论(0)
  • 2020-12-09 09:23

    Thanks this works great: http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard

    Strangely, you must follow the renaming steps in the instructions, where you mod the symlinks for 1.5 and 1.5.0 to the actual leopard Java 1.5 - if you don't do that and just try to run the java binary, you get a bus error!

    In any case, thanks to these steps I now have an actual Java 5 JDK to compile and run against in Eclipse, which saves me lots of trouble. For one thing, I can find and remove references to Java 1.6-only methods instantly. It's great. Before these would only show up in QA, or even worse, when one of the few customers still on Java 5 tried to run our program. Which was. Bad.

    This is why "supporting" JDK5 while actually just pointing symlinks to Java 6 is not good enough for development.

    0 讨论(0)
  • 2020-12-09 09:24

    Although the -source and -target flags can be used, they don't always produce code which works on all older JREs. I've definitely had occasions where trying to back-compile to an older spec produced code which worked fine for some users, but wouldn't run on others. To be really sure that everyone using a 1.5 or 1.4 JRE can run your code, you should probably do your production builds with a 1.5 or 1.4 JDK.

    I found these instructions very helpful on getting a "real" 1.5 and 1.4 JDK installed under snow leopard: http://codethought.com/blog/?p=233

    0 讨论(0)
  • 2020-12-09 09:37

    There are really two problems here:

    1. Installing an old version of Java, and keeping Software Update from removing it.
    2. Telling applications that require the older version where to find it, while letting everything else benefit from the latest version.

    I don't have anything to add (yet) to what has already been written about installing an old version of Java, however, according to this post from Mike Swingler, Java Runtime Engineer at Apple:

    Nobody can or should should be changing symlinks in /System/Library/ Frameworks/JavaVM.framework except for Apple software updates (and we are loath to do so, because it inevitably breaks someone)

    In other words, updating the Operating System's links to the old copy of Java is a questionable practice, as it forces every Java application on the system to use the old Java version.

    The right way is to set JAVA_HOME to the correct version of Java on an as-needed basis. You can do this by executing /usr/libexec/java_home to get the path to a specific version. For example, to get the path to a 1.5 version:

    /usr/libexec/java_home --version 1.5

    0 讨论(0)
  • 2020-12-09 09:39

    The absolutely easiest way is to use this script by Brice Dutheil. Save the script, download the dmg from Apple (the script will tell you the URI), and run the script. Voila!

    0 讨论(0)
  • 2020-12-09 09:40

    If you're writing code in Eclipse or potentially some other IDE, you should be able to configure it to target 1.5 compliance.

    If you are using javac directly, you could try the -source 1.5 and/or -target 1.5 javac options, which may be sufficient for what you're doing? The 1.6 JDK should be able to produce 1.5-compliant code.

    0 讨论(0)
提交回复
热议问题