0
I actually wrote a Java SE Maven application using netbeans and made a CRUD for some entities that are scanned in the database through JPA.
I was wondering if it is possible to run a textual interface of this program in DOCKER
A web application I can do, create the Docker application file and create the Docker application database file .
However I would like to make 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 Docker file from this application?
I didn’t quite understand what the difficulty would be. It seems to me that the basics of Java is just to do this.
– Maniero
Do what? If posting something you are doing may help understand question.
– Maniero
Getting the arguments by the main args[] just call so
script.jar param 1 param2
, nay?– Laerte
From what I understand he wants to make an application in CLI(Command Line Interface), right? I’ve never done this with Java outside using the console but I believe it is possible yes.
– Guilherme Ramalho
@That’s right! It’s possible , I just checked!! I edited the question!! Thank you!
– Pena Pintada
@Penada painted if you found the solution, post it as answer!
– Genos