2011-10-02 112 views
3

我想要显示我的应用程序,无需携带笔记本电脑或分发混淆Java应用程序的麻烦。有没有办法远程查看Swing应用程序?

是否有一种简单的方法在浏览器中查看我的Swing应用程序。我不一定需要命令按钮才能工作(但如果他们这样做会很好),我只想看看互联网上任何地方的像素。我有从JChart2D构建的图表。

编辑:屏幕在可配置的时间段和15秒后更新是典型的,但如果桌面每15秒更新一次并且浏览器图像以更慢的速度更新,例如1分钟,那就没问题。

编辑:我的主要是桌面应用程序,它是一个桌面应用程序满足98%的要求,但如果我可以看到它或远程使用它,而不需要重写,这会给我额外的2%(见1%,使用1%)。

+0

您可以使用远程桌面或VNC吗?如果没有,如果应用程序无法正常工作,您可能不介意浏览器窗口中的截图。 – msandiford

+0

我需要每15秒更新一次,而不仅仅是静态截图。远程桌面听起来像个好主意。 – H2ONaCl

回答

2

没有太多的解决方案,但最简单的方法是JNLP

JNLP是一种基于XML的技术,用于通过Web启动Java可执行文件。试想一下,您可以在应用程序中指定类路径资源(图像,JAR文件,属性,文件等),分散在Web上并提供它们的URL,而不像普通的Java应用程序那样依赖本地文件系统。此功能可让您自动部署您的应用程序(即安装所需的应用程序文件并正确启动它们),只需声明您的文件位于Web上即可。而且它比Applets更容易,由于浏览器的严格权限,它可能会给你造成很多麻烦。

JNLP的一个例子是herehere

+0

我最近尝试过股票经纪人的JNLP客户端。我猜它必须下载字节码,因此它看起来像是一个不平凡的IP财产盗窃风险。不过,如果下载仅限于我给予密码的用户,它看起来就像一个实用的解决方案。 – H2ONaCl

2

我不认为我会推荐这个(因为它有安全含义和防火墙问题),但可以使用远程X11服务器运行Java/Swing应用程序。

下面是一些相关链接:

但Linux文档可能更多UPTODATE信息。

另一个想法是制作演示电影。

1

另一种可能性(不一定很好,但容易实现)可能是使用java.awt.Robot类。

使用此类,您可以定期拍摄屏幕快照,使用#createScreenCapture(...),然后使用javax.imageio.ImageIO将其写入磁盘。

然后,创建一个显示该图像的HTML页面并定期自动刷新就很简单。有点复杂和迂回,但可能让你重新使用现有的基础设施。

2

为此目的,最近的Webswing可能是完美的。它似乎功能齐全。有一些小故障,我想念游标。唉,远程应用程序也显示在服务器上,无论您是否需要它。

+0

嗨。你还在使用webswing(now = jan 2016)吗?任何建议,或提示? – Houtman

+0

不,我从来没有用过它,因为我不需要它。 –

0

VNCj(official page,SourceForge)是一个较旧的项目,它在VNC服务器上提供了AWT的实现。 Swing在其上运行。与WebSwing不同,运行VNCj时服务器上不会显示UI。

相关问题