2009-09-16 137 views
8

我用于开发Java(Struts,Spring,JSP ...)中的Web应用程序。但现在我想开发一个桌面。我从来不喜欢用Java设计窗口(AWT,Swing,SWT):对于难看的界面来说,工作太多了。所以我认为如果可以利用我的网络应用技能,这可能是一个好主意。一种选择是修改SWT浏览器并调用Java函数而不是HTTP请求。一个非常好的插件就是使用JSP。最后,我认为可能有一些框架或工具。使用HTML开发桌面应用程序视图,作为web应用程序

你认为我提出的是一个好主意吗? 有一些这样的框架?

我需要这个轻量级应用程序。所以我认为嵌入一个Tomcat服务器并将它用于HTTP请求并不是一个好主意。

感谢您的帮助。

编辑:一个示例应用程序可能是文件夹比较器:您指定了两个文件夹,并且该应用程序显示您至少需要的文件夹和文件不同。在这种情况下,我认为打开外部浏览器很丑陋。膨胀的应用程序(与其服务器,MVC等)不会是最好的选择。

+0

请使用Adobe AIR之类的东西。极好的。非常容易。我们取得了非常好的成绩。 – 2009-09-16 15:25:10

+0

您可能也喜欢Titanium。它们还允许您运行Ruby和Python。 – 2009-09-16 15:25:40

+0

感谢您的回答。 AFAIK,AIR和Titanium不适用于Java开发,所以我的代码不会成为混淆平台。另外,你没有得到一个可执行文件,你必须安装它的启动程序。请纠正我,如果我错了。 – sinuhepop 2009-09-16 16:11:50

回答

1

我不会打折嵌入Web服务器。我之前通过嵌入Jetty的网络启动应用程序完成了此操作。

下载相当快,服务器启动时,您可以使用BrowserLauncher立即开车将浏览器嵌入式服务器,因此你的应用程序。码头设计为模块化,占地面积小,因此您可以将其裁减为最基本的必需品。

+0

将轻型服务器嵌入Jetty并不完全排除。也许我会做的是我没有找到像我所要求的东西。 谢谢。 – sinuhepop 2009-09-16 16:27:05

1

有几种选择:你可以使用Firefox的插件API,并在那里开发你的应用程序。您可以使用HTML,JavaScript,内置数据库,所有浏览器功能和访问操作系统级别。

或者您可以尝试PyQt(Python和Qt),它允许非常快速地编写简单的应用程序。

您面临的主要问题是安全性:出于安全原因,JavaScript应用程序(运行在HTML页面中)无法访问本地操作系统资源。因此,除非您的浏览器允许您使用JavaScript编写插件(这仅适用于FF AFAIK),否则无法编写使用HTML作为“视图”的应用程序,而无需其他帮助。

此外,当涉及到应用程序的功能时,HTML非常有限。 HTML被设计成“静态文档视图”而不是“应用程序”。你可以做GMail之类的事情,但如果你比较GMail和任何真正的邮件应用(Outlook,Thunderbird,Notes),你会很快看到真正的桌面应用提供了更多的功能。

+0

感谢您的回答,但我认为这不完全是我正在寻找的。我想创建一个独立的应用程序,并且不需要安装Firefox或任何其他应用程序(Java除外)。 PyQt可以成为桌面应用程序的一种很好的方式,但是Python不是Java而Qt不是HTML。其实Qt更像是Swing等问候。 – sinuhepop 2009-09-16 15:34:03

+0

查看我的编辑:如果你坚持所有的观点,你想要的可能是不可能的。 – 2009-09-17 07:42:59

2

如果您已经使用JavaScript库 - ExtJs - 那么您可以将它与Adobe AIR结合使用来构建外观良好的基于​​桌面的Web应用程序。

在Adobe AIR中构建应用程序也非常简单,并且使用了flex构建器ide。

+0

我爱ExtJS;)如前所述,问题在于AIR不适用于Java编程,您将不会获得可执行文件:用户必须安装AIR。请纠正我,如果我错了。谢谢! – sinuhepop 2009-09-16 17:16:36

+0

你必须试试Aptana。他们有很多例子可以帮助你。 – 2009-09-17 07:44:50

+0

您可以使用merapi API(java代码),然后使用AIR前端。将应用和安装程序捆绑在一个集合中。 – techzen 2009-09-17 08:27:15

2

如果您选择嵌入轻量级服务器,请检查winstone不完全符合J2EE标准,但应足以满足您的需求。 关于浏览器,我并不是swt自己的粉丝,它使很多跨平台部署变得复杂,因此可能值得留意jwebpane,还没有完全准备好,但可能是您需要的解决方案。