Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

890
Vistas
Docker para ejecutar una clase pequeña de Java: no se pudo encontrar o cargar la clase principal (aunque existe)

Me doy cuenta de que es posible que ya se haya hecho esta pregunta, pero en mi investigación no puedo encontrar una respuesta. Probablemente estoy cometiendo un simple error.

Me gustaría ejecutar una clase de Java localmente con Docker, dentro de un contenedor. A continuación se muestra mi Dockerfile:

Dockerfile

 FROM maven:3.5.2-jdk-8 COPY src /src RUN javac src/java/com/Main.java CMD java src/java/com/Main

Luego ejecuto estos comandos en orden:

 docker build -t my_image_6_26_19:latest . docker run -it my_image_6_26_19:latest

El comando de build funciona bien, pero el comando de run arroja el siguiente error:

 Error: Could not find or load main class src.java.com.Main

He revisado las siguientes preguntas sobre SO, pero parece que ninguna respuesta funciona (o tal vez no entendí la solución):

  • Creación de una imagen acoplable desde Dockerfile con maven - Error: "No se pudo encontrar o cargar la clase principal"
  • DockerFile para ejecutar un programa Java
  • Error de Docker: no se pudo encontrar o cargar la clase principal Main.Main

Cuando construyo el contenedor, a través de una depuración ( RUN ls /src/java/com ) puedo ver que se está creando un archivo Main.class . No estoy seguro de por qué no se puede encontrar ese archivo. Además, he intentado cambiar la última línea de mi Dockerfile a CMD java src/java/com/Main.class , pero no tuve suerte.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si Main no tiene un paquete, intente:

 CMD java -classpath src/java/com Main

si tiene un paquete (por ejemplo, com , ¿quizás?) intente:

 CMD java -classpath src/java com.Main
over 4 years ago · Santiago Trujillo Denunciar

0

La segunda versión en respuesta de @martijno es la correcta. Además, recomiendo decirle al compilador que escriba la salida en otro directorio, por ejemplo, bin :

 RUN javac src/java/com/Main.java -d bin CMD java -cp bin com.Main
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda