Running Programs & IDEs Reference: COS240 Syllabus COS240 O-O Languages AUBG, COS dept Lecture 10b Title: Running Programs & IDEs (Java) Reference: COS240 Syllabus 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Lecture Contents: Java applications classified Processing Java source texts How Java works IDEs to run Java 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Java applications classified Java programs may be applications or applets. Applications are standalone programs, similar to .NET Console and Windows applications. Applets are similar to applications, but they do not run as standalone programs. - Instead, applets adhere to a set of conventions that lets them run within a Java-compatible browser (client-side). - You can only run an applet from an HTML page. 6/4/2018 Assoc. Prof. Stoyan Bonev
Java, C#, C++ - High Level PL In order to run /to execute/, any program written in HLL should be transformed to executable form Three ways to convert source code into executable form: Compiler – generate object code Interpreter – interpret the source code Compiler of semi-interpreting type 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev data Object program Executing computer Results Source program compiler Run time Compile time 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Data Source program Interpreter Results Compile time Run time 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev data Object program in IL form Interpreter Results Source program compiler Compile1 time Compile2 time Run time 6/4/2018 Assoc. Prof. Stoyan Bonev
Processing HLL programs Java is compiled to intermediate form – bytecode. Bytecode processed by interpreter named JVM. C# and C++ (managed code) are compiled to intermediate form – MSIL code. MSIL code processed by interpreter named CLR. C++ (native, unmanaged code) is directly compiled to executable native machine code. No intermediate code, no need of interpreter. 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev How Java works 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev How Java Works Java's platform independence is achieved by the use of the Java Virtual Machine (JVM). A Java program consists of one or more files with a .java extension these are just text (i.e. source) files. When a Java program is compiled, the .java files are fed to the compiler which produces a .class file for each .java file. The .class file contains Java bytecode. Java bytecode is like machine language, but it is intended for the Java Virtual Machine, not a specific processor. 6/4/2018 Assoc. Prof. Stoyan Bonev
Executing a Java program
JVM emulation run on a physical machine
JVM handles translations
Java Popularity Pure Java includes 3 software facilities: JRE JVM JDK
The Java Runtime Environment (JRE) provides the libraries, the Java Virtual Machine, and other components to run applets and applications written in Java.
JVM - Overview Java Virtual Machine is a program which executes certain other programs, namely those containing Java bytecode instructions. JVM is distributed along with Java Class Library, a set of standard class libraries (in Java bytecode) that implement the Java application programming interface (API). These libraries, bundled together with the JVM, form the Java Runtime Environment (JRE). JVMs are available for many hardware and software platforms. The use of the same bytecode for all JVMs on all platforms allows Java to be described as a write once, run anywhere programming language, versus write once, compile anywhere, which describes cross-platform compiled languages. Oracle Corporation, the owner of the Java trademark, produces the most widely used JVM, named HotSpot, that is written in the C++ programming language.
JVM JVM architecture. Source code is compiled to Java bytecode, which is verified, interpreted or JIT-compiled for the native architecture. The Java APIs and JVM together make up the Java Runtime Environment (JRE).
JDK contents The JDK has a collection of programming tools, including:
JDK contents java – the loader for Java applications. This tool is an interpreter and can interpret the class files generated by the javac compiler. Now a single launcher is used for both development and deployment. The old deployment launcher, jre, no longer comes with Sun JDK, and instead it has been replaced by this new java loader. javac – the Java compiler, which converts source code into Java bytecode javadoc – the documentation generator, which automatically generates documentation from source code comments jar – the archiver, which packages related class libraries into a single JAR file. This tool also helps manage JAR files.
A Simple Java Program Listing 1.1 //This program prints message “Welcome, Java!“ // braces in new-line style public class Welcome { public static void main(String[] args) System.out.println("Welcome to Java!"); } Source: Longman dictionary 1987
A Simple Java Program Listing 1.1 //This program prints message “Welcome, Java!“ // braces in end-line style (recommended) public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Java!"); } Source: Longman dictionary 1987
Creating, Compiling, and Running Java Programs
Compiling Java Source Code You can port a source program to any machine with appropriate compilers. The source program must be recompiled, however, because the object program can only run on a specific machine. Nowadays computers are networked to work together. Java was designed to run object programs on any platform. With Java, you write the program once, and compile the source program into a special type of object code, known as bytecode. The bytecode can then run on any computer with a Java Virtual Machine, as shown below. Java Virtual Machine is a software that interprets Java bytecode.
Approaches to run Java How to Compile/Run Java Programs Java IDEs javac, java Java IDEs TextPad, jGRASP, BlueJ, NetBeans, Eclipse Java Development Tools javadoc, jar, jdb Java Programming: From Problem Analysis to Program Design, 3e
Creating, Compiling & Running Java From the Command Window From within IDE 6/4/2018 Source: Longman dictionary 1987
Creating, Compiling and Running Java from Command Line Window First: to open a Command Window Click Start, All Programs, Accessories, Command Prompt Second: to create a separate directory/folder on C: drive or Q: drive where to save .java and .class files md COS240Progs cd COS240Progs Third: to Set path to JDK bin directory Already done by OCC Fourth: to create and save Java source file Notepad/Write Welcome.java Fifth: to Compile javac Welcome.java Sixth: to Run java Welcome
Creating and Editing Using editors like Notepad, WordPad, etc To use NotePad, type notepad Welcome.java from the DOS prompt. To use WordPad, type write Welcome.java 6/4/2018
Compiling, and Running Java Programs In order to compile your Java program, you should type javac Welcome.java In order to run your compiled to bytecode Java program, you should type java Welcome 6/4/2018
Compiling, and Running Java Programs public class Welcome { public static void main(String args[]) { int i=1; while (i<5) { System.out.println("Greeting to Blagoevgrad!"); i++; } // end of while loop } // end of method main } // end of Welcome class 6/4/2018
Compiling and Running Java from IDEs Java IDEs: TextPad jGRASP BlueJ NetBeans – Open source by Sun Eclipse – Open source by IBM 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from TextPad . 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from TextPad Edit the .java file The edited file should be saved before the coming commands to take effect. Subjects of interest: Select tools, click run (user is expected to type command and parameters) Command:javac Parameter:Welcome.java Command:java Parameter:Welcome Select view, click tool output 6/4/2018
Compiling and Running Java from TextPad public class COS240 { public static void main(String args[]) { int i=1; for (i=1; i<=5; i++) System.out.println("Greeting from COS dept"); } 6/4/2018
Compiling and Running Java from jGRASP 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from jGRASP Subjects of interest: Select Build, Click Compile Select Build, Click Run Or Select Build, Click Run as Applet Select Build, Click Run as Application CheckBox: run in MS-DOS window 6/4/2018
Compiling and Running Java from jGRASP import java.util.Scanner; public class COS240Proba { public static void main(String args[]) { Scanner cin = new Scanner(System.in); int pom = cin.nextInt(); float pom2 = cin.nextFloat(); double pom3 = cin.nextDouble(); System.out.println(" " + pom + " " + pom2 + " " + pom3); } 6/4/2018
Compiling and Running Java from BlueJ 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from BlueJ 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from NetBeans 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from NetBeans Subjects of interest: The concept of a project The user is expected: To choose project (Categories: Java, Projects: Java application) To name the project and to locate the project To create Main class and to set as Main project To type the Java source text To select Run, click Run Main Project (F6) Or To select Run, click Build Main Project(F11), click Run Main Project (F6) To select Run, click Clean and Build Main Project(Shift+F11), click Run Main Project (F6) 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from Eclipse 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from Eclipse Subjects of interest: The concept of a project Compilation activated when File_save activity take place List of steps to follow: 6/4/2018 Source: Longman dictionary 1987
Compiling and Running Java from Eclipse Open the Java perspective: In main menu select Window > Open Perspective > Java Create a Java project In main toolbar Click New Java Project btn, Enter HelloWorld for name, click Finish Create your Helloworld class In main toolbar Click New Java class btn, select xx\src as a source folder, enter HelloWorld for class name, click check box to create the main() method, click Finish Add a println statement Type stmts, then save changes, the class will automatically compile upon saving Run your java application Right click on your class in the Package Explorer, and then select Run As>Java application 6/4/2018 Source: Longman dictionary 1987
Eclipse Downloads: Tutorials: http://www.eclipse.org/downloads/ http://www.vogella.de/articles/Eclipse/article.html http://eclipsetutorial.sourceforge.net/totalbeginner.html 6/4/2018
Java Development Tools Brief overview on Java Development Tools: (Detailed discussion in lecture 29) java javac javadoc jar jdb 6/4/2018 Source: Longman dictionary 1987
Running java Description Common Options Synopsis java [interpreter options] classname [program arguments] java [interpreter options] -jar jarfile [program arguments] Description Common Options 6/4/2018 Source: Longman dictionary 1987
Running javac Description Common Options Synopsis javac [options] files Description Common Options 6/4/2018 Source: Longman dictionary 1987
Running javadoc Description Common Options Synopsis javadoc [options] @list package… sourcefiles… Description Common Options 6/4/2018 Source: Longman dictionary 1987
Running jar Description Common Options Synopsis jar c|t|u|x [jarfile] [manifest] [-C directory] [input files] jar I [jarfile] Description Common Options 6/4/2018 Source: Longman dictionary 1987
Running jdb Description Common Options Synopsis jdb [options] class [program options] Description Common Options 6/4/2018 Source: Longman dictionary 1987
Assoc. Prof. Stoyan Bonev Practical session Task: write a program to input two integral values and to compute and display the result of their addition, subtraction, multiplication and division Language: Java IDE: Eclipse 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Practical session Task: write a program to input two integral values and to compute and display the result of their addition, subtraction, multiplication and division Language: Java IDE: NetBeans 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Practical session Task: write a program to input two integral values and to compute and display the result of their addition, subtraction, multiplication and division Language: Java IDE: jGRASP 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Practical session Problem: To accumulate sum of stream of input integers terminated by sentinel value Language: Java IDE: Eclipse 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Practical session Problem: To accumulate sum of stream of input integers terminated by sentinel value Language: Java IDE: NetBeans 6/4/2018 Assoc. Prof. Stoyan Bonev
Assoc. Prof. Stoyan Bonev Practical session Problem: To accumulate sum of stream of input integers terminated by sentinel value Language: Java IDE: jGRASP 6/4/2018 Assoc. Prof. Stoyan Bonev
Thank You for Your attention!