Java: Time for your first project

Quick recap

 

Loops

while (true) {
    System.out.println("Hello, I'm a spambot");
}

for (int i = 0; i < 1337; i++) {
    System.out.println("Hello, I'm a bad spambot");
}

List<String> list = new ArrayList<>();

list.add("hello");
list.add("world");

for (String word : list) {
    System.out.println(word);
}

Variables

List<Person> list = new ArrayList<>();
Person person = new Person("kim");
String name = "Justin Bieber";
int age = 10;
double pi = 3.14159265359d;
UserStory story = new UserStory("PS-001", "Make Java presentation");
Task task = new Task(story, "Make second presentation");

Programs & installation

Programs

Essential

Recommended editors:

Java Setup

1. Download Java JDK

2. Install Java JDK

3. Add the bin directory to the PATH variable

Maven

1. Download Maven

2. Extract the zip file of maven

3. Add the bin directory of maven to the PATH variable

Your first java project

Creating the project

$ mvn archetype:generate 



[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode


...

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1095: 1095
Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 6
Define value for property 'groupId': : me.ferrybig
Define value for property 'artifactId': : testProject
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  me.ferrybig: :
Confirm properties configuration:
groupId: me.ferrybig
artifactId: testProject
version: 1.0-SNAPSHOT
package: me.ferrybig
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: C:\Users\fernando\Documents\Javadev
[INFO] Parameter: package, Value: me.ferrybig
[INFO] Parameter: groupId, Value: me.ferrybig
[INFO] Parameter: artifactId, Value: testProject
[INFO] Parameter: packageName, Value: me.ferrybig
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: C:\Users\fernando\Documents\Javadev\testProject
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:34 min
[INFO] Finished at: 2017-12-14T13:37:25+01:00
[INFO] Final Memory: 15M/163M
[INFO] ------------------------------------------------------------------------

Result

C:\Users\fernando\Documents\Javadev\testProject>tree /a /f                                                              
Folder PATH listing for volume Windows                                                                                  
Volume serial number is 000000AF 9A71:FAEE                                                                              
C:.                                                                                                                     
|   pom.xml                                                                                                             
|                                                                                                                       
\---src                                                                                                                
     +---main                                                                                                          
     |   \---java                                                                                                     
     |       \---me                                                                                                  
     |           \---ferrybig                                                                                         
     |                   App.java                                                                                      
     |                                                                                                                  
     \---test                                                                                                            
        \---java                                                                                                         
           \---me                                                                                                        
              \---ferrybig                                                                                               
                     AppTest.java

Coding

Java Example

package me.ferrybig;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Running the example

$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building testProject 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------

....

$ java -cp target/testProject-1.0-SNAPSHOT.jar me.ferrybig.App
Hello World!

Questions?

Java: setting up the environment for your first project

By Fernando van Loenhout

Java: setting up the environment for your first project

  • 63