SlideShare a Scribd company logo
1 of 16
Development

1
Using the javac and java Commands
(Objective 7.2)

• 7.1 Given a code example and a scenario, write code that
uses the appropriate access modifiers, package
declarations, and import statements to interact with
(through access or inheritance) the code in the example.
• 7.2 Given an example of a class and a commandline, determine the expected runtime behavior.
• 7.5 Given the fully-qualified name of a class that is
deployed inside and/or outside a JAR file, construct the
appropriate directory structure for that class. Given a
code example and a classpath, determine whether the
classpath will allow the code to compile successfully.
2
Compiling with javac

• javac [options] [source files]
• javac -help
• javac -classpath com:. -g Foo.java
Bar.java
• Whenever you specify multiple options
and/or files they should be separated by
spaces.
3
Compiling with -d
• By default, the compiler puts a .class file in the same
directory as the .java source file
> This is fine for very small projects

• The -d option lets you tell the compiler in which directory
to put the .class file(s) it generates (d is for destination)
myProject
|
|--source
||
| |-- MyClass.java
|
|-- classes
|
|--

cd myProject
javac -d classes source/MyClass.java

4
myProject
|
|--source
|
|
|
|--com
|
|
|
|--wickedlysmart
|
|
|
|--MyClass.java
|
|--classes
|
|

• In this case, the compiler will build two directories called com and
com/wickedlysmart in order to put the resulting MyClass.class file into the correct package
directory :

5
• The last thing about -d that you'll need to know for the
exam is that if the destination directory you specify
doesn't exist, you'll get a compiler error.
• If, in the previous example, the classes directory did NOT
exist, the compiler would say something like:
• java:5: error while writing MyClass:
classes/MyClass.class (No such file or directory)

6
Launching Applications with java
• In Chapter 5 we talked about the assertion mechanism
and when you might use flags such as -ea or -da when
launching an application.

• java [options] class [args]
java -DmyProp=myValue MyClass x 1
• Sparing the details for later, this command can be read as "Create a system property called
myProp and set its value to myValue. Then launch the file named MyClass.
• class and send it two String arguments whose values are x and 1."

7
Using System Properties

If this file is compiled and invoked
as follows:
import java.util.*;
java -DcmdProp=cmdVal TestProps
public class TestProps {
public static void main(String[] args) { You'll get something like this:
...
Properties p =
os.name=Mac OS X
System.getProperties();
myProp=myValue
p.setProperty("myProp", "myValue");
...
p.list(System.out);
java.specification.vendor=Sun Microsystems Inc.
}
user.language=en
java.version=1.5.0_02
}
...
cmdProp=cmdVal
...

8
• When using the -D option, if your value contains white
space the entire value should be placed in quotes like
this:
• java -DcmdProp="cmdVal take 2" TestProps

9
Handling Command-Line Arguments
public class CmdArgs {
compiled and then invoked as follows
public static void main(String[]
java CmdArgs x 1
args) {
the output will be
int x = 0;
0 element = x
for(String s : args)
1 element = 1
System.out.println(x++ + "
element = " + s);
}
} The following are all legal declarations for main():
static public void main(String[] args)
public static void main(String... x)
static public void main(String bang_a_gong[])
10
Searching for Other Classes
Both java and javac use the same basic search algorithm:
1. They both have the same list of places (directories) they
search, to look for classes.
2. They both search through this list of directories in the same
order.
3. As soon as they find the class they're looking for, they stop
searching for that class. In the case that their search lists
contain two or more files with the same name, the first file
found will be the file that is used.
4. The first place they look is in the directories that contain the
classes that come standard with J2SE.
11
5. The second place they look is in the directories defined by
classpaths.
6. Classpaths should be thought of as "class search paths." They
are lists of directories in which classes might be found.
7. There are two places where classpaths can be declared:
> A classpath can be declared as an operating system environment

variable. The classpath declared here is used by default, whenever java
or javac are invoked.

> A classpath can be declared as a command-line option for either java or

javac. Classpaths declared as command-line options override the
classpath declared as an environment variable, but they persist only for
the length of the invocation.
12
Declaring and Using Classpaths
• -classpath /com/foo/acct:/com/foo
• specifies two directories in which classes can be found:
/com/foo/acct and /com/foo
• the java and javac commands don't search the current
directory by default. You must tell them to search there.

:

.

• -classpath /com/foo/acct /com/foo:

13
It's also important to remember that
classpaths are searched from left to right.

•-classpath /com:/foo:.
•is not the same as
•-classpath .:/foo:/com
• Finally, the java command allows you to abbreviate classpath with -cp
14
Packages and Searching
import com.wickedlysmart.Utils;
class TestClass {
void doStuff() {
Utils u = new Utils(); // simple name
u.doX("arg1", "arg2");
com.wickedlysmart.Date d =
new com.wickedlysmart.Date(); // full name
d.getMonth("Oct");
}
}

15
16

More Related Content

What's hot (18)

Packages and interfaces
Packages and interfacesPackages and interfaces
Packages and interfaces
 
Packages in java
Packages in javaPackages in java
Packages in java
 
Java - Packages Concepts
Java - Packages ConceptsJava - Packages Concepts
Java - Packages Concepts
 
Package in java
Package in javaPackage in java
Package in java
 
Java package
Java packageJava package
Java package
 
Package In Java
Package In JavaPackage In Java
Package In Java
 
Android datastorage
Android datastorageAndroid datastorage
Android datastorage
 
Sql lite android
Sql lite androidSql lite android
Sql lite android
 
Packages(9 cm604.26)
Packages(9 cm604.26)Packages(9 cm604.26)
Packages(9 cm604.26)
 
Javapackages 4th semester
Javapackages 4th semesterJavapackages 4th semester
Javapackages 4th semester
 
Mule system properties
Mule system propertiesMule system properties
Mule system properties
 
Android - Data Storage
Android - Data StorageAndroid - Data Storage
Android - Data Storage
 
Filter
FilterFilter
Filter
 
Android Data Storagefinal
Android Data StoragefinalAndroid Data Storagefinal
Android Data Storagefinal
 
Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9
 
Ldapsession
LdapsessionLdapsession
Ldapsession
 
Advanced R cheat sheet
Advanced R cheat sheetAdvanced R cheat sheet
Advanced R cheat sheet
 
Jdbc[1]
Jdbc[1]Jdbc[1]
Jdbc[1]
 

Viewers also liked

chp 3 : Modifiers (scjp/ocjp)
chp 3 : Modifiers (scjp/ocjp)chp 3 : Modifiers (scjp/ocjp)
chp 3 : Modifiers (scjp/ocjp)It Academy
 
Pp orientació mediterrània
Pp orientació mediterràniaPp orientació mediterrània
Pp orientació mediterràniamnogue47
 
Les communes concernées par la pollution en Isère
Les communes concernées par la pollution en IsèreLes communes concernées par la pollution en Isère
Les communes concernées par la pollution en IsèreSarah Rebouh
 
Bad brews night 02.25.2010
Bad brews night 02.25.2010Bad brews night 02.25.2010
Bad brews night 02.25.2010Lucas Wolf
 
Florian Guanio
Florian GuanioFlorian Guanio
Florian Guanioflguanio
 
Volem ser escola verda adults
Volem ser escola verda adultsVolem ser escola verda adults
Volem ser escola verda adultsmnogue47
 
chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)It Academy
 
Bad brews night 02.25.2010
Bad brews night 02.25.2010Bad brews night 02.25.2010
Bad brews night 02.25.2010Lucas Wolf
 
Florian Guanio
Florian GuanioFlorian Guanio
Florian Guanioflguanio
 
Chapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsChapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsIt Academy
 
Chap1 language fondamentale of java ( scjp /ocjp)
Chap1 language fondamentale of java ( scjp /ocjp)Chap1 language fondamentale of java ( scjp /ocjp)
Chap1 language fondamentale of java ( scjp /ocjp)It Academy
 
Chapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsChapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsIt Academy
 
Genética de la violencia: Gen MAOA
Genética de la violencia: Gen MAOAGenética de la violencia: Gen MAOA
Genética de la violencia: Gen MAOAJoel Ricci-López
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 

Viewers also liked (19)

chp 3 : Modifiers (scjp/ocjp)
chp 3 : Modifiers (scjp/ocjp)chp 3 : Modifiers (scjp/ocjp)
chp 3 : Modifiers (scjp/ocjp)
 
Pp orientació mediterrània
Pp orientació mediterràniaPp orientació mediterrània
Pp orientació mediterrània
 
2.D
2.D2.D
2.D
 
Les communes concernées par la pollution en Isère
Les communes concernées par la pollution en IsèreLes communes concernées par la pollution en Isère
Les communes concernées par la pollution en Isère
 
Bad brews night 02.25.2010
Bad brews night 02.25.2010Bad brews night 02.25.2010
Bad brews night 02.25.2010
 
Florian Guanio
Florian GuanioFlorian Guanio
Florian Guanio
 
Volem ser escola verda adults
Volem ser escola verda adultsVolem ser escola verda adults
Volem ser escola verda adults
 
Slides show
Slides showSlides show
Slides show
 
2.J
2.J2.J
2.J
 
chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)chap 6 : Objects and classes (scjp/ocjp)
chap 6 : Objects and classes (scjp/ocjp)
 
Filiz özyaprak
Filiz özyaprakFiliz özyaprak
Filiz özyaprak
 
Bad brews night 02.25.2010
Bad brews night 02.25.2010Bad brews night 02.25.2010
Bad brews night 02.25.2010
 
Florian Guanio
Florian GuanioFlorian Guanio
Florian Guanio
 
Chapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic ConceptsChapter 4:Object-Oriented Basic Concepts
Chapter 4:Object-Oriented Basic Concepts
 
Chap1 language fondamentale of java ( scjp /ocjp)
Chap1 language fondamentale of java ( scjp /ocjp)Chap1 language fondamentale of java ( scjp /ocjp)
Chap1 language fondamentale of java ( scjp /ocjp)
 
Chapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java StatementsChapter 2 : Programming with Java Statements
Chapter 2 : Programming with Java Statements
 
2.N
2.N2.N
2.N
 
Genética de la violencia: Gen MAOA
Genética de la violencia: Gen MAOAGenética de la violencia: Gen MAOA
Genética de la violencia: Gen MAOA
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 

Similar to Use javac and java commands to compile and run Java code

Similar to Use javac and java commands to compile and run Java code (20)

Java basics
Java basicsJava basics
Java basics
 
API workshop: Deep dive into Java
API workshop: Deep dive into JavaAPI workshop: Deep dive into Java
API workshop: Deep dive into Java
 
Java Class Loading
Java Class LoadingJava Class Loading
Java Class Loading
 
Arquillian in a nutshell
Arquillian in a nutshellArquillian in a nutshell
Arquillian in a nutshell
 
Classpath
ClasspathClasspath
Classpath
 
Adv kvr -satya
Adv  kvr -satyaAdv  kvr -satya
Adv kvr -satya
 
Advance java kvr -satya
Advance java  kvr -satyaAdvance java  kvr -satya
Advance java kvr -satya
 
Java Packages
Java Packages Java Packages
Java Packages
 
20-packages-jar.ppt
20-packages-jar.ppt20-packages-jar.ppt
20-packages-jar.ppt
 
Java Class Loader
Java Class LoaderJava Class Loader
Java Class Loader
 
Dspace4 150227090306-conversion-gate01
Dspace4 150227090306-conversion-gate01Dspace4 150227090306-conversion-gate01
Dspace4 150227090306-conversion-gate01
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
javapackage
javapackagejavapackage
javapackage
 
5 the final_hard_part
5 the final_hard_part5 the final_hard_part
5 the final_hard_part
 
Class loader basic
Class loader basicClass loader basic
Class loader basic
 
Java programming basics
Java programming basicsJava programming basics
Java programming basics
 
Advanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sirAdvanced java jee material by KV Rao sir
Advanced java jee material by KV Rao sir
 
Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)Java 8 in Anger (QCon London)
Java 8 in Anger (QCon London)
 
Java 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx FranceJava 8 in Anger, Devoxx France
Java 8 in Anger, Devoxx France
 
Java packages
Java packagesJava packages
Java packages
 

More from It Academy

Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesIt Academy
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesIt Academy
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesIt Academy
 
Chapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLChapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLIt Academy
 
Chapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismChapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismIt Academy
 
Chapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceChapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceIt Academy
 
Chapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsChapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsIt Academy
 
Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionIt Academy
 
Chapter 3:Programming with Java Operators and Strings
Chapter 3:Programming with Java Operators and  StringsChapter 3:Programming with Java Operators and  Strings
Chapter 3:Programming with Java Operators and StringsIt Academy
 
Chapter 3 : Programming with Java Operators and Strings
Chapter 3 : Programming with Java Operators and  StringsChapter 3 : Programming with Java Operators and  Strings
Chapter 3 : Programming with Java Operators and StringsIt Academy
 
Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)It Academy
 
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)It Academy
 
chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)It Academy
 
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)It Academy
 
chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)It Academy
 
chap 2 : Operators and Assignments (scjp/ocjp)
chap 2 : Operators and Assignments (scjp/ocjp)chap 2 : Operators and Assignments (scjp/ocjp)
chap 2 : Operators and Assignments (scjp/ocjp)It Academy
 
Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof frIt Academy
 

More from It Academy (19)

Chapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side TechnologiesChapter 12:Understanding Server-Side Technologies
Chapter 12:Understanding Server-Side Technologies
 
Chapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration TechnologiesChapter 10:Understanding Java Related Platforms and Integration Technologies
Chapter 10:Understanding Java Related Platforms and Integration Technologies
 
Chapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side TechnologiesChapter 11:Understanding Client-Side Technologies
Chapter 11:Understanding Client-Side Technologies
 
Chapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UMLChapter 9:Representing Object-Oriented Concepts with UML
Chapter 9:Representing Object-Oriented Concepts with UML
 
Chapter8:Understanding Polymorphism
Chapter8:Understanding PolymorphismChapter8:Understanding Polymorphism
Chapter8:Understanding Polymorphism
 
Chapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class InheritanceChapter 7:Understanding Class Inheritance
Chapter 7:Understanding Class Inheritance
 
Chapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their RelationshipsChapter 6:Working with Classes and Their Relationships
Chapter 6:Working with Classes and Their Relationships
 
Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class Construction
 
Chapter 3:Programming with Java Operators and Strings
Chapter 3:Programming with Java Operators and  StringsChapter 3:Programming with Java Operators and  Strings
Chapter 3:Programming with Java Operators and Strings
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Chapter 3 : Programming with Java Operators and Strings
Chapter 3 : Programming with Java Operators and  StringsChapter 3 : Programming with Java Operators and  Strings
Chapter 3 : Programming with Java Operators and Strings
 
Chapter 1 :
Chapter 1 : Chapter 1 :
Chapter 1 :
 
Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)Chap 9 : I/O and Streams (scjp/ocjp)
Chap 9 : I/O and Streams (scjp/ocjp)
 
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)chap 8 : The java.lang and java.util Packages (scjp/ocjp)
chap 8 : The java.lang and java.util Packages (scjp/ocjp)
 
chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)chap 7 : Threads (scjp/ocjp)
chap 7 : Threads (scjp/ocjp)
 
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
chap4 ; Flow Control, Assertions, and Exception Handling (scjp/ocjp)
 
chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)chap4 : Converting and Casting (scjp/ocjp)
chap4 : Converting and Casting (scjp/ocjp)
 
chap 2 : Operators and Assignments (scjp/ocjp)
chap 2 : Operators and Assignments (scjp/ocjp)chap 2 : Operators and Assignments (scjp/ocjp)
chap 2 : Operators and Assignments (scjp/ocjp)
 
Design patterns gof fr
Design patterns gof frDesign patterns gof fr
Design patterns gof fr
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Use javac and java commands to compile and run Java code

  • 2. Using the javac and java Commands (Objective 7.2) • 7.1 Given a code example and a scenario, write code that uses the appropriate access modifiers, package declarations, and import statements to interact with (through access or inheritance) the code in the example. • 7.2 Given an example of a class and a commandline, determine the expected runtime behavior. • 7.5 Given the fully-qualified name of a class that is deployed inside and/or outside a JAR file, construct the appropriate directory structure for that class. Given a code example and a classpath, determine whether the classpath will allow the code to compile successfully. 2
  • 3. Compiling with javac • javac [options] [source files] • javac -help • javac -classpath com:. -g Foo.java Bar.java • Whenever you specify multiple options and/or files they should be separated by spaces. 3
  • 4. Compiling with -d • By default, the compiler puts a .class file in the same directory as the .java source file > This is fine for very small projects • The -d option lets you tell the compiler in which directory to put the .class file(s) it generates (d is for destination) myProject | |--source || | |-- MyClass.java | |-- classes | |-- cd myProject javac -d classes source/MyClass.java 4
  • 5. myProject | |--source | | | |--com | | | |--wickedlysmart | | | |--MyClass.java | |--classes | | • In this case, the compiler will build two directories called com and com/wickedlysmart in order to put the resulting MyClass.class file into the correct package directory : 5
  • 6. • The last thing about -d that you'll need to know for the exam is that if the destination directory you specify doesn't exist, you'll get a compiler error. • If, in the previous example, the classes directory did NOT exist, the compiler would say something like: • java:5: error while writing MyClass: classes/MyClass.class (No such file or directory) 6
  • 7. Launching Applications with java • In Chapter 5 we talked about the assertion mechanism and when you might use flags such as -ea or -da when launching an application. • java [options] class [args] java -DmyProp=myValue MyClass x 1 • Sparing the details for later, this command can be read as "Create a system property called myProp and set its value to myValue. Then launch the file named MyClass. • class and send it two String arguments whose values are x and 1." 7
  • 8. Using System Properties If this file is compiled and invoked as follows: import java.util.*; java -DcmdProp=cmdVal TestProps public class TestProps { public static void main(String[] args) { You'll get something like this: ... Properties p = os.name=Mac OS X System.getProperties(); myProp=myValue p.setProperty("myProp", "myValue"); ... p.list(System.out); java.specification.vendor=Sun Microsystems Inc. } user.language=en java.version=1.5.0_02 } ... cmdProp=cmdVal ... 8
  • 9. • When using the -D option, if your value contains white space the entire value should be placed in quotes like this: • java -DcmdProp="cmdVal take 2" TestProps 9
  • 10. Handling Command-Line Arguments public class CmdArgs { compiled and then invoked as follows public static void main(String[] java CmdArgs x 1 args) { the output will be int x = 0; 0 element = x for(String s : args) 1 element = 1 System.out.println(x++ + " element = " + s); } } The following are all legal declarations for main(): static public void main(String[] args) public static void main(String... x) static public void main(String bang_a_gong[]) 10
  • 11. Searching for Other Classes Both java and javac use the same basic search algorithm: 1. They both have the same list of places (directories) they search, to look for classes. 2. They both search through this list of directories in the same order. 3. As soon as they find the class they're looking for, they stop searching for that class. In the case that their search lists contain two or more files with the same name, the first file found will be the file that is used. 4. The first place they look is in the directories that contain the classes that come standard with J2SE. 11
  • 12. 5. The second place they look is in the directories defined by classpaths. 6. Classpaths should be thought of as "class search paths." They are lists of directories in which classes might be found. 7. There are two places where classpaths can be declared: > A classpath can be declared as an operating system environment variable. The classpath declared here is used by default, whenever java or javac are invoked. > A classpath can be declared as a command-line option for either java or javac. Classpaths declared as command-line options override the classpath declared as an environment variable, but they persist only for the length of the invocation. 12
  • 13. Declaring and Using Classpaths • -classpath /com/foo/acct:/com/foo • specifies two directories in which classes can be found: /com/foo/acct and /com/foo • the java and javac commands don't search the current directory by default. You must tell them to search there. : . • -classpath /com/foo/acct /com/foo: 13
  • 14. It's also important to remember that classpaths are searched from left to right. •-classpath /com:/foo:. •is not the same as •-classpath .:/foo:/com • Finally, the java command allows you to abbreviate classpath with -cp 14
  • 15. Packages and Searching import com.wickedlysmart.Utils; class TestClass { void doStuff() { Utils u = new Utils(); // simple name u.doX("arg1", "arg2"); com.wickedlysmart.Date d = new com.wickedlysmart.Date(); // full name d.getMonth("Oct"); } } 15
  • 16. 16