Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

3.4K
Views
"No se puede acceder al archivo jar" al intentar ejecutar un jar con docker

Error: Unable to access jarfile jar-runner.jar cuando intento ejecutar mi jar.

archivo acoplable:

 FROM anapsix/alpine-java MAINTAINER bramhaag CMD ["java", "-jar", "jar-runner.jar", "some param", "some param"]

El archivo jar se encuentra en /home/selfbot/ y lo estoy ejecutando con Portainer. Así es como se ve mi contenedor Portainer:portaherramientas[1]

¿Cómo haría que esto funcione?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Con el formato CMD [ ] "exec", Docker intentará ver los argumentos y dar su opinión sobre su utilidad. "No se puede acceder al archivo jar" es un mensaje de Docker y solo significa que Docker tiene algunos problemas (no especificados) con un archivo jar. Lo encontré cuando el nombre del archivo jar contenía una variable ENV , por ejemplo. Docker no pudo manejar eso, aparentemente.

También existe el formato "shell" de CMD , CMD java -jar jar-runner.jar "some param" "some param" . Esto se conoce como el formato de shell porque Docker entrega los argumentos a /bin/sh -c . Como resultado, no está tratando de adivinar lo que significan los argumentos. sh a su vez tampoco trata de ser inteligente. Y java es completamente capaz de usar jar-runner.jar .

Eso sí, si tiene un error tipográfico en jar-runner.jar , o si lo colocó en la ubicación incorrecta, entonces el mensaje de Docker podría ser correcto. La solución de shell es útil cuando Docker adivina mal.

over 4 years ago · Santiago Trujillo Report

0

Parece que tiene el volumen montado, por lo que suponiendo que tenga razón en que el archivo jar está disponible en el contenedor a través de ese volumen, probablemente solo necesite especificar la ruta para que Java pueda encontrarlo.

 CMD ["java", "-jar", "/home/selfbot/jar-runner.jar", "some param", "some param"]

Puede verificar si el archivo está realmente disponible ejecutando un comando diferente para mostrarle el contenido de un directorio determinado. Cambie el comando (en Portainer) a algo como

 ls -la /home/selfbot

Y luego puede verificar si el archivo jar está realmente donde lo cree, si es legible, etc. Este comando se cerrará de inmediato, pero su salida estará disponible en el registro del contenedor.

over 4 years ago · Santiago Trujillo Report

0

Tratar
ENTRYPOINT ["java","-jar","jar-runner.jar"] CMD ["some param"]

Tuve un problema similar aquí en mi publicación: Error: no se puede acceder al archivo jar cuando se ejecuta el contenedor docker

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!