Title: write once, run anywhere Nishad Abdulkareem, Lecturer MES College Marampally
1 write once, run
anywhereNishad Abdulkareem, LecturerMES College
Marampally
2Index
- Java Programming language
- History
- Java Varieties
- Java world
- Buzz words
- Classpath
- Program
3Java Programming Language
- Java is a programming language originally
developed by James Gosling at Sun Microsystems
(which is now a subsidiary of Oracle Corporation)
and released in 1995 as a core component of Sun
Microsystems' Java platform. - The language derives much of its syntax from C
and C but has a simpler object model and fewer
low-level facilities. - Java applications are typically compiled to
bytecode (class file) that can run on any Java
Virtual Machine (JVM) regardless of computer
architecture. - It is intended to let application developers
"write once, run anywhere".
4Once upon a time
- The original and reference implementation Java
compilers, virtual machines, and class libraries
were developed by Sun from 1995. - As of May 2007, in compliance with the
specifications of the Java Community Process, Sun
relicensed most of its Java technologies under
the GNU General Public License. -
- James Gosling initiated the Java language project
in June 1991 for use in one of his many set-top
box projects. - Java was originally designed for interactive
television, but it was too advanced. The
language, initially called Oak after an oak tree
that stood outside Gosling's office, also went by
the name Green and ended up later renamed as
Java, from a list of random words.
5and grown up like
- Sun Microsystems released the first public
implementation as Java 1.0 in 1995. It promised
"Write Once, Run Anywhere" (WORA), providing
no-cost run-times on popular platforms. - Fairly secure and featuring configurable
security, it allowed network- and file-access
restrictions. Major web browsers soon
incorporated the ability to run Java applets
within web pages, and Java quickly became
popular. - With the advent of Java 2 (released initially as
J2SE 1.2 in December 19981999), new versions had
multiple configurations built for different types
of platforms. - The different platforms are J2EE,J2ME and J2SE
6Behind the names
- Java Platform, Enterprise Edition or Java EE is a
widely used platform for server programming in
the Java programming language. - The Java platform (Enterprise Edition) differs
from the Java Standard Edition Platform (Java SE)
in that it adds libraries which provide
functionality to deploy fault-tolerant,
distributed, multi-tier Java software, based
largely on modular components running on an
application server. - For marketing purposes, Sun renamed new J2
versions as Java EE. The current version is
called Java EE 6. - Java EE includes several API specifications, such
as JDBC, RMI, e-mail, JMS, web services, XML,
etc, and defines how to coordinate them.
7JSE
- Java Standard Edition or Java SE is a widely used
platform for programming in the Java language. - It is the Java Platform used to deploy portable
applications for general use. - In practical terms, Java SE consists of a
virtual machine, which must be used to run Java
programs, together with a set of libraries (or
"packages") needed to allow the use of file
systems, networks, graphical interfaces, and so
on, from within those programs. - The "SE" is used to distinguish the base platform
from Java EE and Java ME. The "2" was originally
intended to emphasize the major changes
introduced in version 1.2, but was removed in
version 1.6.
8JME
- Java Platform, Micro Edition, or Java ME, is a
Java platform designed for mobile devices and
embedded systems. -
- Target devices range from industrial controls to
mobile phones (especially feature phones) and
set-top boxes. Java ME was formerly known as Java
2 Platform, Micro Edition (J2ME).
9JEE
- Java EE also features some specifications unique
to Java EE for components. These include
Enterprise JavaBeans, Connectors, servlets,
portlets (following the Java Portlet
specification), JavaServer Pages and several web
service technologies. - This allows developers to create enterprise
applications that are portable and scalable, and
that integrate with legacy technologies. - A Java EE application server can handle
transactions, security, scalability, concurrency
and management of the components that are
deployed to it, in order to enable developers to
concentrate more on the business logic of the
components rather than on infrastructure and
integration tasks
10Java World
Provides a simplified, fast way to create dynamic
web content. JSP technology enables rapid
development of web-based applications that are
server- and platform-independent.
- Java Server Pages
- Java Servlets
- Java Messaging Services
- Java mail API
- Java API for XML Processing
- JDBC API
A servlet class extends the capabilities of
servers that host applications that are accessed
by way of a request-response programming model.
Although servlets can respond to any type of
request, they are commonly used to extend the
applications hosted by web servers
Messaging is a method of communication between
software components or applications. a messaging
client can send messages to and receive messages
from any other client. Each client connects to a
messaging agent that provides facilities for
creating, sending, receiving, and reading
messages.Eg Car inventory
Web applications can use the JavaMail API to send
email notifications. The API has two parts an
application-level interface that the application
components use to send email and a service
provider interface. Service providers implement
particular email protocols, such as SMTP
The Java API for XML Processing (JAXP), part of
the Java SE platform, supports the processing of
XML documents using the Document Object Model
(DOM), the Simple API for XML (SAX),
11JRE
- Java Runtime Environment
- The java programming language adds the
portability by converting the source code to byte
code version which can be interpreted by the JRE
and gets converted to the platform specific
executable ones. - Thus for different platforms one has
corresponding implementation of JRE. But JRE has
to meet the specification JVM (Java Virtual
Machine) Concept that serves as a link between
the Java libraries and the platform specific
implementation of JRE. - Thus JVM helps in the abstraction of inner
implementation from the programmers who make use
of libraries for their programmes.
12 13JDK
- Java Developer Kit contains tools needed to
develop the Java programs, and JRE to run the
programs. The tools include compiler (javac.exe),
Java application launcher (java.exe),
Appletviewer, etc - The JDK(Java Developmental Tool kit) comes along
with java libraries and JVM embedded in it. - Apart from these it comes along with the utility
tools for byte code compilation "javac",
Executing the byte codes through java programmes
through "java" and many more utilities found in
the binary directory of java. - Speaking practically JDK is essential for
developers, which comes along with library
packages to develop Software programmes. - JRE is minimal set of programmes which executes
the java class files developed by the software
developers. - Without jre one can only compile the application
but cannot run the application Since jre contains
the JVM which executes the byte code generated
from the javac compiler.
14- JRE JVM Java Packages Classes(like util,
math, lang, awt,swing etc)runtime libraries. - Java Runtime Environment contains JVM, class
libraries, and other supporting files. It does
not contain any development tools such as
compiler, debugger, etc. Actually JVM runs the
program, and it uses the class libraries, and
other supporting files provided in JRE. If you
want to run any java program, you need to have
JRE installed in the system - The Java Virtual Machine provides a
platform-independent way of executing code
programmers can concentrate on writing software,
without having to be concerned with how or where
it will run
15- As we all aware when we compile a Java file,
output is not an 'exe' but it's a '.class' file.
'.class' file consists of Java byte codes which
are understandable by JVM. Java Virtual Machine
interprets the byte code into the machine code
depending upon the underlying operating system
and hardware combination. It is responsible for
all the things like garbage collection, array
bounds checking, etc JVM is platform dependent. - The JVM is called "virtual" because it provides a
machine interface that does not depend on the
underlying operating system and machine hardware
architecture. This independence from hardware and
operating system is a cornerstone of the
write-once run-anywhere value of Java programs. - There are different JVM implementations are
there. These may differ in things like
performance, reliability, speed, etc. These
implementations will differ in those areas where
Java specification doesnt mention how to
implement the features, like how the garbage
collection process works is JVM dependent, Java
spec doesnt define any specific way to do this.
16 17Java Buzzwords
- Simple
- Java inherits the C/C syntax and many of the
object oriented features of C ,most programmers
have little trouble learning java. - Object Oriented
- The object model in java is Simple and easy to
extend, while primitive types ,such as integers
,are kept as high performance nonobjects. - Robust
- Memory management
- Exception Handling
- Multithreaded
- Multiprocess synchronization
- Architectural Neutral
- Distributed
- RMI
18Classpath
- The Classpath is an argument - set either on the
command-line, or through an environment variable
- that tells the Java Virtual Machine where to
look for user-defined classes and packages when
running Java programs. - When we invoke Java, we specify the name of the
application to run org.mypackage.HelloWorld.
However we must also tell Java where to look for
the files and directories defining our package.
So to launch the program, we use the following
command - java -classpath D\myprogram org.mypackage.HelloWo
rld
19Say hello to Java
- First Program
- All program starts by executing by calling main()
- Public is the access specifier.main must be
declared as public so that it can access from
outside the class - static allows main to be called without
instantiating a particular class. - Any information that are passed in to the method
is received by variables specified within the
parenthesis called parameters . - String args declares a parameter named args,
which is an array of instances of string. - System is predefined class that provides access
to system, out is the output stream that is
connected to the console - Any information need to pass to a method is
specified within the set of parameters that
follow the name of method_called parameters
20- Swap two numbers without using a third variable
- Reverse Number
- Expression
21javap - The Java Class File Disassembler
- The javap command disassembles a class file. Its
output depends on the options used. If no options
are used, javap prints out the package,
protected, and public fields and methods of the
classes passed to it. javap prints its output to
stdout. For example, compile the following class
declaration - help Prints out help message for javap.
- -l Prints out line and local variable tables.
- -b Ensures backward compatibility with javap in
JDK 1.1. - -public Shows only public classes and members.
- -protected Shows only protected and public
classes and members. - -package Shows only package, protected, and
public classes and members. This is the default. - -private Shows all classes and members.
-
22- -Jflag Pass flag directly to the runtime system.
Some examples javap -J-version javap
-J-Djava.security.manager -J-Djava.security.policy
MyPolicy MyClassName - -s Prints internal type signatures.
- -c Prints out disassembled code, i.e., the
instructions that comprise the Java bytecodes,
for each of the methods in the class. These are
documented in the Java Virtual Machine
Specification. - -verbose Prints stack size, number of locals and
args for methods. - -classpath path Specifies the path javap uses to
look up classes. Overrides the default or the
CLASSPATH environment variable if it is set.
Directories are separated by semi-colons. Thus
the general format for path is -
23References
- www.wikipedia.com
- http//www.sun.com
- http//www.java-examples.com/
- The complete Reference Java