Docker java.jar赢得';跑不动

Docker java.jar赢得';跑不动,java,docker,Java,Docker,我试图在Docker中运行Java游戏,但当我尝试运行它时,会收到以下错误消息 错误:jarfile/usr/src/app/v0.0.6-FINAL.jar无效或损坏 Dockerfile # Base image FROM java:8 #COPY . /usr/src/app #WORKDIR /usr/src/app # Get Code v0.0.6 from Github ADD ["https://github.com/JohnnyDeeee/Oils-Well/blob/m

我试图在Docker中运行Java游戏,但当我尝试运行它时,会收到以下错误消息
错误:jarfile/usr/src/app/v0.0.6-FINAL.jar无效或损坏

Dockerfile

# Base image
FROM java:8

#COPY . /usr/src/app
#WORKDIR /usr/src/app

# Get Code v0.0.6 from Github
ADD  ["https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6 - FINAL.jar", "/usr/src/app/"]

# DEBUG
RUN chmod +x "/usr/src/app/v0.0.6 - FINAL.jar"
RUN ls -al /usr/src/app

# Start the Game
CMD ["java", "-jar", "/usr/src/app/v0.0.6 - FINAL.jar"]
这就是我如何构建
docker build-t oilswell-v0.0.6.

并运行我的映像

docker run oilswell-v0.0.6

这是因为Github提供文件的方式,目前您正从Github中提取此页面

如果打开它,您将看到它不是您的JAR,而是显示GIT存储库中JAR的页面。您实际需要的URL是

这将返回实际的JAR,而不是HTML页面。所以你的Dockerfile应该是这样的

# Base image
FROM java:8

ADD ["https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6%20-%20FINAL.jar?raw=true", "/usr/src/app/"]
RUN chmod +x "/usr/src/app/v0.0.6 - FINAL.jar"

# Start the Game
CMD ["java", "-jar", "/usr/src/app/v0.0.6 - FINAL.jar"]

您可以通过更改jar的文件扩展名将其作为zip存档打开吗?@dorukayhan是的,在我的windows OSA上,您可以在docker环境之外运行jar吗?如果签名与我认为的类不匹配,jar文件也会损坏。我不确定一旦修复,这是否会起作用。在docker容器中运行GUI应用程序是可能的,但有点黑客行为(据我所知,在windows主机上不可能,除非您运行的是完整的图形化VM linux)@zapl答案解决了我的问题,但我认为您是对的。。我在游戏中遇到一些错误,没有看到任何GUI,因此我将查看您的链接谢谢;)谢谢,这解决了我的问题。现在我的游戏中出现了一些错误,可能是因为GUI应用程序不能与docker一起运行。。?