Java is described as being a portable language. But that only means that the 'runnable' class files are fairly portable
- you must download and install the correct Java Virtual Machine / Java Runtime Environment / Java Development Kit for your computer / operating system / needs.
This diagram shows you the choices you make in deciding which version is right for you.
• Which Distribution do you need - Sun's? IBM's? The Gnu version? Typically, Sun's version is the one we use, as we're heavily into the Tomcat container. The Gnu version is nice / unusual in that it lets you generate native executables.
• Do you need the full Java Development Kit which includes the compiler (if you're running JSPs on Tomcat, or developing code yourself, you do), or is just a Java Runtime Environment - the java engine plus all the standard classes that almost all code uses - sufficient? You can also download just a Java Virtual Machine - the core engine - but that's not much use without the supporting classes
• Micro edition (suitable for generating code to run on tiny devices), Standard Edition (a typical, middle of the road setup for client workstations), or Enterprise Edition (including all the server stuff). Surprisingly, for a simple Tomcat server setup, the Standard Edition is enough as the servlet-api which is in the enterprise edition is ALL you would need from the enterprise edition ... and it's included in the Tomcat distribution anyway.
• Download for the correct processor chip set. Although Java class files are portable, the underlying virtual machine is not - it's written in C and is compiled up for a particular processor
• Download for the correct operating system. As the code of the JVM is in C, and makes system calls, you need to have the version that's right for your operating system. If you download a Linux version and try and run it on Windows it won't work - even if you got everything else right - since the OS calls will be missing!
• And finally, you will need to download an appropriate release of Java. "Latest is best" may be your automatic reaction, but if you are compiling applets that will run in your user's browser, that may not be the case
since you need to be able to generate class files that will be compatible with the JVMs that your users will have installed in their browsers. You can do yourself a huge dis-service by providing an applet that will ONLY work in the very latest browser releases because it uses new facilities that most people haven't yet upgraded to!
If you're installing Tomcat, you'll need to have Java installed - and you'll need the right version of Java to go with your Tomcat. Firstly - get the correct chip and OS version, and note that you'll want the Java Development Kit (JDK) and at least the standard edition of Java. Then choose your version.
• Tomcat 6 requires Java 1.6 (a.k.a Java 6). In the future, that will probably read "Java 6 or later".
• Tomcat 5.5 requires Java 1.5 (a.k.a. Java 5) or later
• Tomcat 5.0 requires Java 1.4 (a.k.a. Java 2 1.4) or later
If you must use Tomcat 5.5 with Java 1.4, there's an extra download available that will let you patch your Java and run that combination ... but Java 1.4 is getting old and the need for that patch is fading fast. (written 2009-05-16)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesA602 - Web Application Deployment - Apache httpd - Sourcing, Installation, Testing 
Apache httpd release 2.2 - (2005-12-10) 
Apache httpd - serving web documents from different directories - (2005-12-12) 
2006 - Making business a pleasure - (2006-01-01) 
Stopping and restarting Apache httpd cleanly - (2006-03-29) 
Browser -> httpd -> Tomcat -> MySQL. Restarting. - (2006-10-28) 
Notes from the white board - (2006-12-14) 
Apache httpd , browser, MySQL and MySQL client downloads - (2007-02-28) 
DHCP automatic IP address v Static IP - (2007-08-06) 
Upgrade Mac OSX to Leopard, Web Server Apache httpd config lost - (2007-11-29) 
Connecting to MySQL 5 from PHP on Mac OSX Leopard - (2007-12-03) 
Configuring Apache httpd - (2008-07-12) 
Apache httpd, MySQL, PHP - installation procedure - (2008-08-01) 
What is built in to this httpd and PHP? - (2008-08-23) 
Summary - Apache httpd build on Linux - (2008-12-14) 
Using ApacheBench and jconsole to test and monitor Tomcat - (2009-03-14) 
Where is my new Apache httpd installed - (2009-03-22) 
Global and Enable - two misused words! - (2009-11-30) 
Automed web site testing scripted in Ruby using watir-webdriver - (2011-09-09) 
Adding a PHP build option, rotating an image based on camera data, and a new look at thumbnails in PHP - (2015-02-22)A503 - Web Application Deployment - Java - Sourcing, Installing, Initial Testing 
Java CLASSPATH explained - (2008-11-26) 
Java - Memory Allocation and garbage collection - (2009-03-14) 
Class Loading and Variable Conversion in Java - (2009-05-02)
Some other Articles
Camera to record where a picture was takenAre we IITT (Institute of IT Training) members?An FAQ on the Apache httpd and Apache Tomcat web servers, and on using them togetherAbstract Classes - JavaChoosing the right version of Java and TomcatServlet life cycle, and Java Servlet variable scopeWhat Linux run level am I in?You cannot please all of the people all of the timePatterns in numbers - room occupancyOffers that I can refuse