在Docker容器中运行Java图形用户界面应用程序

3
我想在Docker容器中运行一个Java GUI应用程序,然后将其托管在我的Ubuntu服务器上。我希望通过Web浏览器访问该应用程序。
这是我想放入Docker容器中的应用程序: https://github.com/Dabomstew/universal-pokemon-randomizer 我是否需要为应用程序添加自定义UI以在浏览器中使用,或者可以在浏览器中使用Java GUI?
我已经看到其他一些项目使用此方法实现,因此我认为这应该是可能的。但我不确定具体如何实现以及需要多少工作量...
以下是一些在Docker容器中运行的Java GUI应用程序的示例:

我是docker的新手,希望有人能帮助我 :) 谢谢!


可能相关:https://dev59.com/_2Qo5IYBdhLWcg3wI8ZV - Andre Albert
你如果没有使用Docker,你会如何完成这个任务?你是否已经有一个现有的设置来使你正在尝试适应的浏览器应用程序可用? - David Maze
@AndreAlbert 谢谢你的回复,我会去查看一下。 - calgara12
@DavidMaze 我真的不知道,不,我不知道,你有什么想法吗? - calgara12
1个回答

1
浏览器只能运行非常有限的语言运行时,基本上只有Javascript和可以重新编译为Javascript的东西。没有一种通用的方式可以将正在运行的桌面应用程序重新发布到浏览器中。 这里的Docker只是一个中间层。它非常适合像HTTP服务器这样除了网络端口之外是自包含的事物;对于命令行应用程序来说还不错(如果你不介意将其作为root以三倍长的命令行运行,它就可以正常工作);但对于GUI应用程序来说很差(只在Linux上工作,命令行又长又难懂,而且东西看起来仍然很可能不同)。它不提供任何跨越这些层的魔法。 您可能会找到一些现有的软件来填补其中的一些空白;也许是基于浏览器的X服务器,或者可能是其中一个完整的VM系统可以在浏览器中显示VM的桌面,或者您可能能够使用几乎死亡的Java applet系统,或者也许有一个Java层,提供基于websocket的客户端,并允许您以轻微修改运行您的Java本机GUI应用程序。
我建议您先让应用程序正常工作,解决“如何实现所需外观”的问题,只有在必要时才引入Docker。它提供的分层机制可能会使许多事情变得更加困难,特别是在您正在积极开发或探索未知领域时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接