||<>|| == Introduction == Java is a technology originally developed by Sun Microsystems, and acquired by Oracle. The following are the prevalent implementations: * '''OpenJDK''': The OpenJDK project is an open-source implementation of the Java SE Platform. This is the default version of Java that is provided from a supported Ubuntu repository. Currently, there are two versions available, [[https://launchpad.net/ubuntu/+source/openjdk-6|openjdk-6]] and [[https://launchpad.net/ubuntu/+source/openjdk-7|openjdk-7]]. * '''Oracle Java''': Oracle Java is the proprietary, reference implementation for Java. This is no longer currently available in a supported Ubuntu repository. For more on this, please see [[https://lists.ubuntu.com/archives/ubuntu-security-announce/2011-December/001543.html|here]]. However, one may install a supported version of Java (7 or 8) via [[https://www.java.com|Oracle's website]], or via the [[https://launchpad.net/~webupd8team/+archive/java|WebUpd8 PPA]]. * '''IBM Java''': IBM Java is the preferred Java solution on PowerPC machines. It is a reimplementation of Java with a Just-In-Time Compiler. It is only available from IBM's website. * '''GNU Compiler''': A Java compiler made by GNU. == OpenJDK == === Installation of Java Runtime Environment === * Install the [[http://apt.ubuntu.com/p/openjdk-6-jre | openjdk-6-jre]] package using any installation method. * Install the [[http://apt.ubuntu.com/p/openjdk-7-jre | openjdk-7-jre]] package using any installation method. <> === Browser plugin === * Install the [[http://apt.ubuntu.com/p/icedtea6-plugin | icedtea6-plugin]] package using any installation method. * Install the [[http://apt.ubuntu.com/p/icedtea-7-plugin | icedtea-7-plugin]] package using any installation method. This plugin works with the browsers: '''Epiphany''', '''Firefox''' and '''Opera'''. On '''Konqueror''', go to '''''Settings → Configure Konqueror...''''' and from menu select '''Java & !JavaScript''', then tick '''Enable Java globally''' option. <> === OpenJDK v6 & v7 SDK (Software Development Kit) === In Java parlance the Java Development Kit (JDK) is sometimes used for SDK. (More about that [[http://en.wikipedia.org/wiki/Java_Development_Kit#Ambiguity_between_a_JDK_and_an_SDK | here]].) * Install the [[http://apt.ubuntu.com/p/openjdk-6-jdk | openjdk-6-jdk]] package using any installation method. * Install the [[http://apt.ubuntu.com/p/openjdk-7-jdk | openjdk-7-jdk]] package using any installation method. === Alternative Virtual Machines === Most users won't need to worry about these, but if you use an architecture (e.g. PowerPC) that defaults to the [[http://openjdk.java.net/projects/zero/|Zero]] Virtual Machine (VM), then you may see a significant performance increase if you switch to: * '''JamVM''': This is the default VM for ARM in 11.10. Install the [[http://packages.ubuntu.com/precise/icedtea-6-jre-jamvm| icedtea-6-jre-jamvm]] package if available. If it is not, then compile instructions can be found [[http://draenog.blogspot.co.uk/2011/02/openjdkjamvm-git-repository.html|here]]. * '''Cacao''': Ensure the [[http://packages.ubuntu.com/precise/icedtea-6-jre-cacao|icedtea-6-jre-cacao]] package is installed. * '''Zero/Shark''': Shark is a just-in-time (JIT) compiler for Zero. Install the [[http://packages.ubuntu.com/lucid/openjdk-6-jre-zero|openjdk-6-jre-zero]] package if available. On architectures which use the Zero VM as the default, the openjdk-6-jre-zero package contains the Shark VM. To use a different VM other than the default, just add the appropriate option to the command you normally use. For example: {{{ java -jamvm|-cacao|-shark|-zero -version }}} See the file {{{/usr/lib/jvm/java-6-openjdk-powerpc/docs/README.Debian}}} (or its equivalent) and the other documents in that directory for more information. Note, the !IcedTea browser plugin will use the default VM (which you can change in the file {{{/etc/java-6-openjdk/jvm.cfg}}}). == Oracle Java 7 == Oracle has declared Java 7 to be fit for general use. Currently there are no .deb packages available for Oracle Java 7. The raw binaries (without installer) can be downloaded directly from Oracle ([[http://www.oracle.com/technetwork/java/javase/downloads/index.html|Oracle Java download page]]). === Installing Oracle Java 7 by a script or from the command line === You can install the newest and secure Oracle Java 7 by a script (JRE only) or by a command line method. Both are easy to apply. === Script (JRE only) === Only supports Oracle (Sun) Java 7 JRE (which covers the needs of 99 % of all computer users). It pulls the packages from Oracle's website and installs them, comparable to the way Adobe Flash Player is being installed. Plus it adds a dedicated repository, from which you'll receive updates automatically. * http://www.duinsoft.nl/packages.php?t=en === Command line methods === Do-it-yourself methods, but very easy to apply (basically: you copy/paste some terminal commands). * [[http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html|Using webupd8.org's strikingly simple method. ]] * [[http://askubuntu.com/questions/56104/how-can-i-install-oracle-jre-7|How do I install Oracle JRE 7?]] * http://sites.google.com/site/easylinuxtipsproject/java (for JRE, more extensive explanation of the commands than in askubuntu.com) * [[http://askubuntu.com/questions/55848/how-do-i-install-oracle-jdk-7|How do I install Oracle JDK 7?]] * [[https://github.com/flexiondotorg/oab-java6|Create a local apt Java repository ]] Using webupd8.org's method has a great benefit in that the package will be updated as Oracle releases Java updates, which means that there will be no need to keep track of updates and reinstall them manually. '''A note (hopefully temporary) about the Eugene San PPA for those who are attempting to use it and are having issues:''' As of the time of this entry, the eugenesan/java PPA is broken. If you have attempted to use it, you may do the following to remove it and use webupd8.org's PPA method (above) instead {{{ sudo apt-get purge oracle-java7-installer* sudo apt-get install ppa-purge sudo ppa-purge ppa:eugenesan/java sudo apt-get clean sudo apt-get update }}} If the preceding does not work, you may try the following more aggressive method. Be aware, however, that it uses the rm command, which will completely remove files immediately and permanently from an important directory. Be extremely cautious. {{{ sudo rm /var/lib/dpkg/info/oracle-java7-installer* sudo apt-get purge oracle-java7-installer* sudo rm /etc/apt/sources.list.d/*java* sudo apt-get update }}} There is also an RFE opened on Oracle bugtracker to [[http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7108196|provide the debian package/installer for Java 7]]. Please consider voting for this RFE. == Oracle Java 8 == Oracle has declared Java 8 to be fit for general use. Currently there are no .deb packages available for Oracle Java 8. The raw binaries (without installer) can be downloaded directly from Oracle ([[http://www.oracle.com/technetwork/java/javase/downloads/index.html|Oracle Java download page]]) === Command line installation methods === Do-it-yourself method, but very easy to apply (basically: you copy/paste some terminal commands). * [[http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html|Using webupd8.org's strikingly simple method. ]] == OpenJDK Java 8 == === Build it yourself === It's actually also easy to build the Java 8 yourself directly from sources... Sounds scary? It really is surprisingly easy, and seriously literally takes about 15 minutes, using [[https://github.com/hgomez/obuildfactory/|hgomez/obuildfactory]], as [[http://blog2.vorburger.ch/2014/06/build-your-own-jdk-at-home.html|described on vorburger.ch blog post]]. == OpenJDK Java 9 == === Build it yourself === Once you have a Java 8 bootstrap JDK, either from the binary Oracle package or one of the PPAs or one you built yourself, it's then easy to build OpenJDK Java 9 yourself. Use the same as above, but make sure that you set the JDK_HOME and PATH to point to your Java 8 JDK, which is needed to build Java 9. == Choosing the default Java to use == If your system has more than one version of Java, configure which one your system uses by entering the following command in a terminal window {{{ sudo update-alternatives --config java }}} This will present you with a selection that looks similar to the following (the details may differ for you): {{{ There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ———————————————————— * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/lib/jvm/jre1.7.0/jre/bin/java 3 manual mode Press enter to keep the current choice[*], or type selection number: 1 }}} == IBM Java == IBM provide JRE and SDK binaries for a number of architectures, including PowerPC. These are available via the [[http://www.ibm.com/developerworks/java/jdk/linux/download.html|IBM Downloads Page]] once you have registered. There are two types of '!InstallAnywhere' package available to you: the 'Archive/tgz' only extracts the files to your system, whereas the 'Installable' package supposedly also configures your system. You can use either, both require additional configuration with Ubuntu. The 'Installable' package also provides an uninstall option. To run the downloaded file use the following commands: {{{ chmod a+x ibm-java-ppc-jre-6.0-10.1.bin sudo ./ibm-java-ppc-jre-6.0-10.1.bin }}} This launches an interactive program that guides you through the installation options. Extract the file to the directory of your choice (for example /usr/lib/jvm/java-6-ibm-powerpc). Once completed, you then need to tell the system where to find the new java commands. If you only have IBM Java installed then you can define an [[https://help.ubuntu.com/community/EnvironmentVariables|environment variable]] to do this. For example, add the following line to your .bashrc file in your home directory. {{{ export PATH=/usr/lib/jvm/java-6-ibm-powerpc/bin:/usr/lib/jvm/java-6-ibm-powerpc/jre/bin:$PATH }}} If you also have openjdk installed then you'll need to update the java alternatives: {{{ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-ibm-powerpc/jre/bin/java" 1 sudo update-alternatives --set java /usr/lib/jvm/java-6-ibm-powerpc/jre/bin/java }}} You'll need to repeat this for every command you need. For the mozilla plugin you can use: {{{ sudo update-alternatives --install /usr/lib/mozilla/plugins/mozilla-javaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-6-ibm-powerpc/jre/lib/ppc/libnpjp2.so 1 sudo update-alternatives --config mozilla-javaplugin.so }}} Further guidance can be found in the [[http://publib.boulder.ibm.com/infocenter/java7sdk/v7r0/index.jsp?topic=%2Fcom.ibm.java.lnx.70.doc%2Fhomepage%2Fplugin-homepage-java.html|IBM documentation]] (including a different way to link the plugin). If you don't use the mozilla plugin frequently then you can disable it for security. You can do this through the Firefox menus or there are Firefox extensions you can use to automate this. To control which Java the Konqueror web browser uses, go to your KDE system settings. Select '''Internet & Network -> Web Browser -> Java & !JavaScript''', and change the '''Path to Java executable''' to either '''/usr/lib/jvm/java-6-ibm-powerpc/bin/java''' or '''java''' (without any quotes). Test the installation at the Sun Java [[http://www.java.com/en/download/help/testvm.xml|test webpage]] and using the command: {{{ java -version }}} Note, there are old PowerPC deb packages still in [[http://packages.medibuntu.org/pool/non-free/i/|medibuntu]] (keep clicking refresh if you get 403 forbidden). These are probably the easiest way to install, although they are now lacking security updates, plus the latest browser plugin. For these reasons it is strongly advised that you download a newer [[http://www-01.ibm.com/support/docview.wss?&uid=swg21394940|Service Refresh Fix Pack]] directly from the [[http://www.ibm.com/developerworks/java/jdk/linux/download.html|IBM Downloads Page]]. You may have to install `libstdc++5` and `libgtk1.2` packages to use old versions of IBM Java. If you installed a 1.4.2 version, and your processor is not a G5, you may have to perform another step to get it to work. For a G3 or G4, use the following command: {{{ sudo sh -c 'echo "JITC_PROCESSOR_TYPE=6" >> /etc/environment' }}} For a 604e or 603e, instead use: {{{ sudo sh -c 'echo "JITC_PROCESSOR_TYPE=5" >> /etc/environment' }}} You will have to log out or restart the computer for this to take effect. == GNU Compiler for Java == Install the [[apt://java-gcj-compat-headless | java-gcj-compat-headless]] package using any installation method. To install the development environment, install the [[apt://java-gcj-compat-dev | java-gcj-compat-dev]] package using any installation method. GCJ is a front end to the GCC compiler which can natively compile both Java(tm) source and bytecode files. The compiler can also generate class files. [[http://www.nongnu.org/gcjwebplugin/|Gcjwebplugin]] is a little web browser plugin to execute Java applets. It is targeted for Mozilla and compatible browsers that support the NPAPI. Others include the Eclipse Java Compiler, which is maintained by the [[http://www.eclipse.org/home/newcomers.php|Eclipse Foundation]]. Eclipse is an open-source Integrated development environment (IDE) written primarily in Java. The Eclipse open source community has over 60 open source projects. == External link == * [[http://www.oracle.com/technetwork/java/eol-135779.html|Oracle Java 6 goes EoL, and no longer receives Public Updates.]] * [[http://www.java.com|Official website of Oracle Java]] * [[http://openjdk.java.net/|Official website of OpenJDK]] * [[http://www.oracle.com/technetwork/java/index.html|Developer support about Java]] * [[http://icedtea.classpath.org/wiki/IcedTea-Web|IcedTea Browser Plugin]] ---- CategorySoftware CategoryDocumentation