java features

The JDK is a key platform component for building Java applications. At its heart is the Java compiler

The Java Development Kit (JDK) is one of three core technology packages used in Java programming, along with the JVM (Java Virtual Machine) and the JRE (Java Runtime Environment). It’s important to differentiate between these three technologies, as well as understanding how they’re connected:

  • JVM is the Java platform component that executes programs.
  • JRE is the on-disk part of Java that creates the JVM.
  • The JDK allows developers to create Java programs that can be executed and run by the JVM and JRE.

Developers new to Java often confuse the Java Development Kit and the Java Runtime Environment. The distinction is that the JDK is a package of tools for developing Java-based software, whereas the JRE is a package of tools for running Java code.

The JRE can be used as a standalone component to simply run Java programs, but it’s also part of the JDK. The JDK requires a JRE because running Java programs is part of developing them.

JDK TOOLS

Basic Tools

These tools are the foundation of the JDK. They are the tools you use to create and build applications.

Tool NameBrief DescriptionLinks to Reference Pages
appletviewerRun and debug applets without a web browser.[Solaris and Linux] [Windows]
aptAnnotation processing tool.
See Annotation Processing Tool for program annotation processing.
[Solaris, Linux, and Windows]
extcheckUtility to detect Jar conflicts.[Solaris and Linux] [Windows]
jarCreate and manage Java Archive (JAR) files.
See Java Archive Files page for the JAR specification.
[Solaris and Linux] [Windows]
javaThe launcher for Java applications. In this release, a single launcher is used both for development and deployment.
The old deployment launcher, jre, is no longer provided.
[Solaris and Linux] [Windows]
javacThe compiler for the Java programming language.[Solaris and Linux] [Windows]
javadocAPI documentation generator.
See Javadoc Tool page for doclet and taglet APIs.
[Solaris and Linux] [Windows]
javahC header and stub generator. Used to write native methods.[Solaris and Linux] [Windows]
javapClass file disassembler[Solaris and Linux] [Windows]
jdbThe Java Debugger.
See JPDA for the debugger architecture specifications.
[Solaris and Linux] [Windows]

Security Tools

These security tools help you set security policies on your system and create applications that can work within the scope of security policies set at remote sites.

Tool NameBrief DescriptionLinks to Reference Pages
keytoolManage keystores and certificates.[Solaris and Linux] [Windows]
jarsignerGenerate and verify JAR signatures.[Solaris and Linux] [Windows]
policytoolGUI tool for managing policy files.[Solaris and Linux] [Windows]

These security tools help you obtain, list, and manage Kerberos tickets.

Tool NameBrief DescriptionLinks to Reference Pages
kinitTool for obtaining Kerberos v5 tickets. Equivalent functionality is available on the Solaris operating system via the kinit tool. For example, for Solaris 11, see the kinit reference page.[Windows]
klistCommand-line tool to list entries in credential cache and key tab. Equivalent functionality is available on the Solaris operating system via the klist tool. For example, for Solaris 11, see the klist reference page.[Windows]
ktabCommand-line tool to help the user manage entries in the key table. Equivalent functionality is available on the Solaris operating system via the kadmin tool. For example, for Solaris 11, see the kadmin reference page.[Windows]

Internationalization Tools

This tool helps to create localizable applications.

Tool NameBrief DescriptionLinks to Reference Pages
native2asciiConvert text to Unicode Latin-1.[Solaris and Linux] [Windows]

Remote Method Invocation (RMI) Tools

These tools help to create applications that interact over the Web or other network.

Tool NameBrief DescriptionLinks to Reference Pages
rmicGenerate stubs and skeletons for remote objects.[Solaris and Linux] [Windows]
rmiregistryRemote object registry service.[Solaris and Linux] [Windows]
rmidRMI activation system daemon.[Solaris and Linux] [Windows]
serialverReturn class serialVersionUID.[Solaris and Linux] [Windows]

Java IDL and RMI-IIOP Tools

These tools are used when creating applications that use OMG-standard IDL and CORBA/IIOP.

Tool NameBrief Description
tnameservProvides access to the naming service.
idljGenerates .java files that map an OMG IDL interface and enable an application written in the Java programming language to use CORBA functionality.
orbdProvides support for clients to transparently locate and invoke persistent objects on servers in the CORBA environment. ORBD is used instead of the Transient Naming Service, tnameserv. ORBD includes both a Transient Naming Service and a Persistent Naming Service. The orbd tool incorporates the functionality of a Server Manager, an Interoperable Naming Service, and a Bootstrap Name Server. When used in conjunction with the servertool, the Server Manager locates, registers, and activates a server when a client wants to access the server.
servertoolProvides ease-of-use interface for the application programmers to register, unregister, startup, and shutdown a server.

Java Deployment Tools

Utilities for use in conjunction with deployment of java applications and applets on the web.

Tool NameBrief Description
javafxpackagerPackages JavaFX applications for deployment. See Deploying JavaFX Applications for more information.
pack200Transforms a JAR file into a compressed pack200 file using the Java gzip compressor. The compressed packed files are highly compressed JARs, which can be directly deployed, saving bandwidth and reducing download time.
unpack200Transforms a packed file produced by pack200 into a JAR file.

Java Web Start Tools

Utilities for use in conjunction with Java Web Start.

Tool NameBrief Description
javawsCommand line tool for launching Java Web Start and setting various options.
See Java Web Start Guide for more information.

Java Troubleshooting, Profiling, Monitoring and Management Tools

Tool NameBrief Description
jcmdJVM Diagnostic Commands tool – sends diagnostic command requests to a running Java Virtual Machine.[Solaris and Linux] [Windows]
jconsoleA JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs. It can also monitor and manage an application.
See Monitoring and Management for the Java Platform for more information.
jmcThe Java Mission Control (JMC) client includes tools to monitor and manage your Java application without introducing the performance overhead normally associated with these types of tools.[Solaris and Linux] [Windows]
jvisualvmA graphical tool that provides detailed information about the Java technology-based applications (Java applications) while they are running in a Java Virtual Machine. Java VisualVM provides memory and CPU profiling, heap dump analysis, memory leak detection, access to MBeans, and garbage collection. See Java VisualVM for more information.

Java Web Services Tools

Tool NameBrief Description
schemagenSchema generator for Java Architecture for XML Binding.
wsgenTool to generate JAX-WS portable artifacts.
wsimportTool to generate JAX-WS portable artifacts.
xjcBinding compiler for Java Architecture for XML Binding.

Monitoring Tools

You can use the following tools to monitor JVM performance statistics. The tools described in this section are unsupported and experimental, and should be used with that in mind. They may not be available in future JDK versions.

These tools are supported on all platforms except Windows 98 and Windows ME.

Tool NameBrief Description
jpsExperimental: JVM Process Status Tool – Lists instrumented HotSpot Java virtual machines on a target system.
jstatExperimental: JVM Statistics Monitoring Tool – Attaches to an instrumented HotSpot Java virtual machine and collects and logs performance statistics as specified by the command line options.
jstatdExperimental: JVM jstat Daemon – Launches an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines and provides a interface to allow remote monitoring tools to attach to Java virtual machines running on the local system.

TROUBLESHOOTING TOOLS

The following tools can be used for specific troubleshooting tasks. The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They may not be available in future JDK versions.

Some of these tools are not currently available on Windows platforms.

Tool NameBrief Description
jinfoExperimental – Configuration Info for Java – Prints configuration information for a given process or core file or a remote debug server.
jhatExperimental – Heap Dump Browser – Starts a web server on a heap dump file (for example, produced by jmap -dump), allowing the heap to be browsed.
jmapExperimental – Memory Map for Java – Prints shared object memory maps or heap memory details of a given process or core file or a remote debug server.
jsadebugdExperimental – Serviceability Agent Debug Daemon for Java – Attaches to a process or core file and acts as a debug server.
jstackExperimental – Stack Trace for Java – Prints a stack trace of threads for a given process or core file or remote debug server.

FUNCTIONS OF JDK

The JDK is a key platform component for building Java applications.At its heart is the Java compiler

  • The JVM is the Java platform component that executes programs.
  • The JRE is the on-disk part of Java that creates the JVM.
  • The JDK allows developers to create Java programs that can be executed and run by the JVM and JRE.

IMPORTANCE OF JDK AND JAVA

Java is a MUST for students and working professionals to become a great Software Engineer specially when they are working in Software Development Domain. I will list down some of the key advantages of learning Java Programming:

  • Object Oriented − In Java, everything is an Object. Java can be easily extended since it is based on the Object model.
  • Platform Independent − Unlike many other programming languages including C and C++, when Java is compiled, it is not compiled into platform specific machine, rather into platform independent byte code. This byte code is distributed over the web and interpreted by the Virtual Machine (JVM) on whichever platform it is being run on.
  • Simple − Java is designed to be easy to learn. If you understand the basic concept of OOP Java, it would be easy to master.
  • Secure − With Java’s secure feature it enables to develop virus-free, tamper-free systems. Authentication techniques are based on public-key encryption.
  • Architecture-neutral − Java compiler generates an architecture-neutral object file format, which makes the compiled code executable on many processors, with the presence of Java runtime system.
  • Portable − Being architecture-neutral and having no implementation dependent aspects of the specification makes Java portable. Compiler in Java is written in ANSI C with a clean portability boundary, which is a POSIX subset.
  • Robust − Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time error checking and runtime checking.

Drop your comment

Leave a Reply

Your email address will not be published.