Java Basics With Docker Containers

[1] Hello World

[1.1] Create project directory

mkdir helloworld

cd helloworld

[1.2] Create Java file

// HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

[1.3] Compile to Java class

javac HelloWorld.java

[1.4] Define Docker image (in Dockerfile)

# Use the OpenJDK 17 base image
FROM openjdk:17

# Set the working directory in the container
WORKDIR /app

# Copy the compiled Java class into the container
COPY HelloWorld.class .

# Command to run the Java application
CMD ["java", "HelloWorld"]

[1.5] Build Docker image (execute Dockerfile)

docker build -t hello-world-java .

[1.6] Run Docker container

docker run -t hello-world-java

[1.7] Stop container

docker ps -a

docker stop <container_id>

[1.8] Remove container

docker rm <container_id>

[1.9] Remove image

docker rmi hello-world-java

.


[2] Conditional Expression

[2.1] Create project directory

mkdir EvenOddChecker
cd EvenOddChecker

[2.2] Create Java file

// EvenOddChecker.java
import java.util.Scanner;

public class EvenOddChecker {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Prompt the user to enter a number
        System.out.print("Enter an integer: ");
        int number = scanner.nextInt();

        // Check if the number is even or odd
        if (number % 2 == 0) {
            System.out.println(number + " is even.");
        } else {
            System.out.println(number + " is odd.");
        }

        // Close the scanner
        scanner.close();
    }
}

[2.3] Compile to Java class

javac EvenOddChecker.java

[2.4] Define Docker container (in Dockerfile)

# Use the OpenJDK 17 base image
FROM openjdk:17

# Set the working directory in the container
WORKDIR /app

# Copy the Java source file into the container
COPY EvenOddChecker.java .

# Compile the Java program
RUN javac EvenOddChecker.java

# Command to run the Java program
CMD ["java", "EvenOddChecker"]

[2.5] Build Docker image (execute Dockerfile)

docker build -t even-odd-checker .

[2.6] Run Docker container

docker run -it even-odd-checker

[2.7] Stop container

docker ps -a

docker stop <container_id>

[2.8] Remove container

docker rm <container_id>

[2.9] Remove image

docker rmi even-odd-checker

.


[3] Array List

[3.1] Create project directory

mkdir EmployeeListApp
cd EmployeeListApp

[3.2] Create Java file

// EmployeeList.java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Employee {
    private int id;
    private String name;

    // Constructor
    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }

    // Getters
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

public class EmployeeList {
    private List<Employee> employees;

    public EmployeeList() {
        employees = new ArrayList<>();
        employees.add(new Employee(1, "Alice"));
        employees.add(new Employee(2, "Bob"));
        employees.add(new Employee(3, "Charlie"));
        employees.add(new Employee(4, "David"));
        employees.add(new Employee(5, "Eve"));
    }

    // Function to find an employee by ID
    public Employee findEmployeeById(int id) {
        for (Employee employee : employees) {
            if (employee.getId() == id) {
                return employee;
            }
        }
        return null; // Return null if no employee found
    }

    public static void main(String[] args) {
        EmployeeList employeeList = new EmployeeList();
        Scanner scanner = new Scanner(System.in);

        // Print all employees
        employeeList.employees.forEach(employee -> 
            System.out.println("ID: " + employee.getId() + ", Name: " + employee.getName())
        );

        // Prompt the user to enter an employee ID
        System.out.print("Enter an employee ID to search: ");
        int searchId = scanner.nextInt();

        // Find the employee by ID
        Employee foundEmployee = employeeList.findEmployeeById(searchId);

        if (foundEmployee != null) {
            System.out.println("Found Employee: ID: " + foundEmployee.getId() + ", Name: " + foundEmployee.getName());
        } else {
            System.out.println("Employee with ID " + searchId + " not found.");
        }

        // Close the scanner
        scanner.close();
    }
}

[3.3] Compile to Java class

javac EmployeeList.java

[3.4] Define Docker container (in Dockerfile)

# Use the OpenJDK 17 base image
FROM openjdk:17

# Set the working directory in the container
WORKDIR /app

# Copy the Java source file into the container
COPY EmployeeList.java .

# Compile the Java program
RUN javac EmployeeList.java

# Command to run the Java program
CMD ["java", "EmployeeList"]

[3.5] Build Docker image (execute Dockerfile)

docker build -t employee-list-app .

[3.6] Run Docker container

docker run -it employee-list-app

[3.7] Stop container

docker ps -a

docker stop <container_id>

[3.8] Remove container

docker rm <container_id>

[3.9] Remove image

docker rmi employee-list-app

.


.