Actually I wrote a maven java SE application using netbeans and made a CRUD for some entities that are persisted in the bank through JPA.
I would like to know if it is possible to run a textual interface of this program in DOCKER
A web application I can do, create the application docker file and create the application database docker file.
But I would like to do a docker file for a maven javaSE application with a simple textual interface. To be quite simple I will put an example with two classes only:
import java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Elevador elevador = new Elevador(10, 6);
int opcao = exibirMenu(in);
while (opcao != 0) {
switch (opcao) {
case 1:
System.out.println("Andar Atual: " + elevador.getAndarAtual());
break;
case 2:
if (elevador.entra() == false) {
System.out.println("Elevador está cheio!");
} else {
System.out.println("Foi inserido uma pessoa.");
}
break;
case 3:
System.out.println("Estado do Elevador: \n");
System.out.println(elevador);
break;
case 4:
System.out.println("Informe o andar:");
int andarSubir = in.nextInt();
if (elevador.sobe(andarSubir) == false) {
if (andarSubir < elevador.getAndarAtual()) {
System.out.println("Operação não realizada. Andar menor que o atual.");
} else {
System.out.println("andar inexistente!");
}
} else {
System.out.println("subiu para o " + andarSubir + " andar.");
}
in.nextLine();
break;
case 5:
System.out.println("Informe o andar:");
int andarDescer = in.nextInt();
if (elevador.desce(andarDescer) == false) {
if (andarDescer > elevador.getAndarAtual()) {
System.out.println("Operaçãoo não realizada. Andar maior que o atual.");
} else {
System.out.println("Você já está no térreo!");
}
} else {
System.out.println("desceu para o " + andarDescer + "o andar.");
}
in.nextLine();
break;
case 6:
if (elevador.sai() == false) {
System.out.println("Elevador está vazio!");
} else {
System.out.println("Saiu uma pessoa");
}
break;
default:
System.out.println("Opção Inválida. Enter para voltar ao Menu");
in.nextLine();
in.nextLine();
}
opcao = exibirMenu(in);
}
in.close();
}
private static int exibirMenu(Scanner in) {
System.out.println("\nEscolha uma opção: \n 1 - Exibir o andar atual "
+ "\n 2 - Realizar a entrada de pessoas "
+ "\n 3 - Mostrar o estado do elevador "
+ "\n 4 - Subir "
+ "\n 5 - Descer"
+ " \n 6 -Realizar a saída de pessoas "
+ " \n 0 - Sair");
int opcao = in.nextInt();
return opcao;
}
}
and the Elevator class:
public class Elevador {
private int totalAndares, andarAtual, capacidade, qtdePessoas;
public Elevador(int totalAndares, int capacidade) {
this.totalAndares = totalAndares;
this.andarAtual = 0;
this.capacidade = capacidade;
this.qtdePessoas = 0;
}
public boolean entra() {
if (qtdePessoas < capacidade) {
qtdePessoas++;
return true;
} else {
return false;
}
}
public boolean sai() {
if (qtdePessoas > 0) {
qtdePessoas--;
return true;
} else {
return false;
}
}
public boolean sobe(int andar) {
if (andar < totalAndares && andar > 0 && andar > andarAtual) {
andarAtual = andar;
return true;
} else {
return false;
}
}
public boolean desce(int andar) {
if (andarAtual > 0 && andar < andarAtual) {
andarAtual = andar;
return true;
} else {
return false;
}
}
public int getTotalAndares() {
return totalAndares;
}
public void setTotalAndares(int totalAndares) {
this.totalAndares = totalAndares;
}
public int getAndarAtual() {
return andarAtual;
}
public void setAndarAtual(int andarAtual) {
this.andarAtual = andarAtual;
}
public int getCapacidade() {
return capacidade;
}
public void setCapacidade(int capacidade) {
this.capacidade = capacidade;
}
public int getQtdePessoas() {
return qtdePessoas;
}
public void setQtdePessoas(int qtdePessoas) {
this.qtdePessoas = qtdePessoas;
}
public String toString() {
return "Total de Andares: " + this.totalAndares + "\nAndar Atual: " + this.andarAtual
+ "\nCapacidade do Elevador: " + this.capacidade + "\nQuantidade de Pessoas no Elevador: " + this.qtdePessoas;
}
}
How to build the application's docker file?