Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
What is a JVM, a JRE, a JDK - components of the core Java Environment

Your Java class files run on a JVM - a "Java Virtual Machine" which is a program that reads the instructions in the (binary) class file and performs them. Although the class files are "architecture independent" - in other words, the same class file will work on an Intel and a PowerPC chip, and on Linux, Unix and Windows, the JVM is NOT portable in this way and you must have the right one for your system.

The JVM is the running "engine" of Java, but just as most of us don't just buy an engine, we buy a complete car ... so it is with Java. Most of us need a JRE - a "Java Runtime Environment" which is a JVM plus all the standard classes which are needed to support our own piece of code. Even in a simple read / calculate / report program, you'll need to load in other standard classes to do jobs like handle command line data, convert a String of characters into a number, and produce output to the current window. All of those standard methods are in the JRE.

Most users of Java programs will simply be running classes through a JVM with the support of a JRE, but the developers of Java programs will also need a way to turn the programs they write, in the "English-like" Java language stored in text files which can be edited easily - into those binary class files which run very mcuh quicker that a language that runs straight from the text (a 'truely interpretive language') but are impractical to edit. And those developers need not only the JVM and the supporting JRE, but also a JDK - that's a "Java Development kit" which amongst other things includes the java compiler program (javac) to convert english-like source into quickly-run binary.

Notes...

1. "JSP"s - which are Java Server Pages, run on a web server, include Java source code within the web page. This means that if you're running JSPs on your web server, even if you're not developing any code / pages yourself, you will need the full JDK loaded ... onto not only your test and development servers, but also your production server!

2. You'll very often compile your Java code on a different computer to the one it's finally going to run on - your programmer's computer is really the one that you should be creating / maintaining programs on, and that should NOT be your live server. However, you must have a complete set of all the classes that your Java code calls up when it runs on your development machine - not only is that sensible because it lets you test your code (ALWAYS test even the smallest of changes - that advise comes from experience!) but also Java insists as it won't let you compile something if the classes that the compiled code relies on aren't available for it to check your code 'against'.


JINI, JMX, JXTA, JAXB, JAXP, JAXR, SAAJ, JAX-RPC, JNI, JAXM ... are all extra technologies that you may wish to use in addition to your 'core Java'. Most of the ones I have listed are additional bundles of class files (known as "packages") which provide extra functionality for Java without the developer having to write it himself. They're accessed via method calls through their API (Application Programmer Interfaces) and to make good use of them, you need to (a) load them, (b) read the documentation / look at the samples and (c) understand something about what they actually do.

The AWT, Swing, and many other elements are also extra technologies, but these particular examples are classes / packages that are bundled with the JRE distribution, so there's no need (in these cases) to download and install them separately.
(written 2009-09-26)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
J601 - Java Introduction
  [25] Release numbers - (2004-08-23)
  [111] Training notes available under Open Distribution license - (2004-11-07)
  [124] PHP v Java - (2004-11-20)
  [317] Programming languages - a comparison - (2005-05-20)
  [792] Is Java the right language to learn? - (2006-07-04)
  [871] Java oversold? - (2006-09-19)
  [1049] Java 6, Apache Tomcat 6. - (2007-01-21)
  [1158] Private Java Course - A customer's pictures - (2007-04-22)
  [1418] A Golf Club Decision - Perl to Java - (2007-11-01)
  [1466] Effective Java training - the bootcamp approach - (2007-12-09)
  [1497] Training Season Starts again! - (2008-01-07)
  [1557] Trying out our Java examples on our web site - (2008-02-27)
  [1766] Diagrams to show you how - Tomcat, Java, PHP - (2008-08-22)
  [1908] Java CLASSPATH explained - (2008-11-26)
  [2115] Finding your java program - the CLASSPATH variable - (2009-04-02)
  [2536] All the Cs ... and Java too - (2009-12-13)
  [4332] First Java Application - calculating the weight of a tablecloth - (2014-11-29)

A501 - Web Application Deployment - Java - Basic Language Overview
  [659] Web Application Components - (2006-03-28)
  [2120] Java on the Web Server - course for delegates with some prior Java experience - (2009-04-06)


Back to
Looking inside Java classes - javap and javadoc
Previous and next
or
Horse's mouth home
Forward to
A Winter Weekend Special at Well House Manor
Some other Articles
Operator overloading - redefining addition and other Perl tricks
Which version of MySQL am I running?
Weekend and Christmas Promotion - Well House Manor Hotel, Melksham
A Winter Weekend Special at Well House Manor
What is a JVM, a JRE, a JDK - components of the core Java Environment
Looking inside Java classes - javap and javadoc
Sorting Collections of Objects in Java
Exceptions in Java - why and how
Where is my Java class?
Viv.java uses unchecked or unsafe operations - explanation and cure
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2423_Wha ... nment.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb