using java without bluej 5.0. 2 bluej projects a bluej project is stored in a directory on disk a...

16
Using Java without BlueJ 5.0

Upload: horatio-reed

Post on 21-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

Using Java without BlueJ

5.0

Page 2: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

2

BlueJ projects• A BlueJ project is stored in a

directory on disk

• A BlueJ package is stored in several different files

• Some files store the source code, some store the compiled code, some store additional information

• BlueJ uses standard Java format for some files and adds some additional files with extra information

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

Page 3: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

3

The BlueJ directory structure

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

UserInterfaceUserInterface

CalcEngineCalcEngine

CalculatorCalculator

project: calculator c:\bluej\calculator\Calculator.javaCalculator.classCalculator.ctxtCalcEngine.javaCalcEngine.classCalcEngine.ctxtpackage.bluejUserInterface.javaUserInterface.classUserInterface.ctxt

Page 4: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

4

The BlueJ file structure

• package.bluej – the package file. Contains information about classes in the package. One per package (project).

• *.java - standard Java source file (text). One per class.

• *.class - standard Java code file. One per class.

• *.ctxt - BlueJ context file. Contains extra information for a class. One per class.

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

Page 5: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

5

Standard Java files

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• source files: *.javaJava source files contain the source code in readable form, as typed in by the programmer.

• source files: *.javaJava source files contain the source code in readable form, as typed in by the programmer.

• class files: *.classJava class files contain byte code (a machine readable version of the class). They are generated by the compiler from the source file.

• class files: *.classJava class files contain byte code (a machine readable version of the class). They are generated by the compiler from the source file.

Page 6: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

6

The edit-compile-execute Cycle

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

source file

011010

110101

010001

class file011010

110101

1001

10

1

0111

0110110

1

1

editorcompiler(javac)

virtual machine(java)

Page 7: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

7

Editing

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• A file can be edited in any text editor

– Notepad, emacs, jEdit, PFE, vi, …

• Don't use Microsoft Word: by default, Word does not save in text format

– Includes formatting (i.e. fonts, shapes, …)

• Make sure to save with a .java file extension before compiling!

Page 8: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

8

Command line invocation

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• Compilation and execution of Java in JDK are done from a command line

–Windows: DOS shell

–Unix: Unix shell

• Must make sure that commands for compiler (javac) and runtime (java) are in the command path

Page 9: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

9

Compiling• JDK compiler: javac

• To invoke: javac ClassName.javacompiles source file and all classes that it depends on

• To find commands in path … either: Change directory to location of commands

– cd C:\Program Files\Java\jdk1.7.0_65\bin– javac ClassName.java

Ensure commands are in your command PATH– Control Panel -> System -> Advanced -> Environment Variables -> PATH

– Add “C:\Program Files\Java\jdk1.7.0_65\bin”– javac ClassName.java

• Creates byte file: ClassName.class

Page 10: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

10

Compilererror messages

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

C:\bluej\project> javac ClassName.java

ClassName.java:22: ';' expected.

private Parser parser

^

1 error

C:\bluej\project>

The programmer has to open the file in the editor, find the line number, fix the error and recompile.

Page 11: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

11

Execution

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

C:\bluej\project> java ClassName

• java starts the Java virtual machine

• The named class is loaded and execution is started

• Other classes are loaded as needed

• Only possible if class has been compiled

Page 12: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

12

Problem Execute what?

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• If we try:C:\bluej\project> java ClassName

• We get a compiler error:Exception in thread "main" java.lang.NoSuchMethodError: main

• The problem: there is NO instance object How does the system know which method to execute?

Page 13: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

13

The main method

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• The java system will always execute a method called main with a certain signature:

public static void main(String[] args){

...}

• If compiling and executing from the command line, then the main method must exist!

Page 14: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

14

The main method

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

• main must exist

• main must be public

• main must be static (class method)

• main must have a String[] parameter

• Only main can be invoked

Example of a class method(may be invoked without an class instance)

Page 15: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

15

Main methodexample

• Consider placing in a separate class, containing just this

• The main method should– create an object– call the first method

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling

public static void main(String[] args){ Game game = new Game(); game.play();}

Page 16: Using Java without BlueJ 5.0. 2 BlueJ projects A BlueJ project is stored in a directory on disk A BlueJ package is stored in several different files Some

16

Demo

TestingMain.java