2009-09-16 6 views
8

Ich bin es gewohnt, Web-Anwendungen in Java zu entwickeln (Struts, Spring, JSP ...). Aber jetzt möchte ich einen Desktop entwickeln. Ich habe es nie gemocht, Windows in Java zu entwerfen (AWT, Swing, SWT): zu viel Arbeit für eine hässliche Schnittstelle. Ich denke also, es könnte eine gute Idee sein, wenn ich meine Web-App-Fähigkeiten nutzen könnte. Eine Möglichkeit besteht darin, den SWT-Browser zu ändern und statt HTTP-Anfragen eine Java-Funktion aufzurufen. Ein sehr gutes Add-on wäre die Verwendung von JSP. Schließlich dachte ich, dass es wahrscheinlich einen Rahmen oder ein Werkzeug dafür gibt.Entwickeln von Desktop-Anwendungen Ansicht mit HTML, als Web-Anwendung

Denkst du, dass das, was ich vorschlage, eine gute Idee ist? Gibt es dafür einen Rahmen?

Ich brauche das für leichte Anwendungen. Daher denke ich, dass das Einbetten eines Tomcat-Servers und die Verwendung mit HTTP-Anfragen keine gute Idee ist.

Danke für Ihre Hilfe.

Bearbeiten: Eine Beispielanwendung könnte ein Ordnervergleich sein: Sie geben zwei Ordner an und die App zeigt Ihnen, welche Ordner und Dateien unterschiedlich sind. In diesem Fall denke ich, dass das Öffnen eines externen Browsers hässlich ist. Aufgeblähte Anwendung (mit seinem Server, MVC, usw.) wäre nicht die beste Wahl.

+0

Verwenden Sie bitte etwas wie Adobe AIR. Extrem gut. Extrem einfach. Wir hatten sehr guten Erfolg damit. –

+0

Sie können auch Titan mögen. Sie ermöglichen Ihnen, Ruby & Python auch auszuführen. –

+0

Danke für Ihre Antworten. AFAIK, AIR und Titanium sind nicht für die Java-Entwicklung geeignet, daher wird mein Code keine Clos-Plattform sein. Außerdem erhalten Sie keine ausführbare Datei, Sie müssen ihre Startprogramme installieren. Bitte korrigiere mich wenn ich falsch liege. – sinuhepop

Antwort

1

Ich würde Rabatt Einbettung eines Webservers nicht raten. Ich habe das schon mal mit einer Web-Start-Applikation gemacht, die Jetty einbettet.

Der Download war ziemlich schnell, der Server startet und Sie können BrowserLauncher verwenden, um sofort Ihren Browser zum eingebetteten Server und damit Ihre Anwendung zu fahren. Jetty ist modular aufgebaut und hat eine kleine Stellfläche, so dass Sie es wahrscheinlich auf das Notwendigste reduzieren können.

+0

Das Einbetten eines Light Servers als Jetty ist nicht völlig ausgeschlossen. Vielleicht werde ich etwas tun, wie ich es nicht wollte. Danke. – sinuhepop

1

Es gibt mehrere Möglichkeiten: Sie können die Plugin-API von Firefox verwenden und Ihre App dort entwickeln. Sie können HTML, JavaScript, die integrierte Datenbank und alle Browserfunktionen verwenden und auf die Betriebssystemebene zugreifen.

Oder Sie könnten PyQt (Python und Qt) versuchen, die einfache Anwendungen sehr schnell schreiben können.

[EDIT] Das Hauptproblem, dem Sie gegenüberstehen, ist die Sicherheit: Aus Sicherheitsgründen können JavaScript-Anwendungen (die auf einer HTML-Seite ausgeführt werden) nicht auf lokale Betriebssystemressourcen zugreifen. Wenn Ihr Browser also nicht die Möglichkeit bietet, Plugins in JavaScript zu schreiben (was nur für FF AFAIK gilt), gibt es keine Möglichkeit, eine Anwendung zu schreiben, die HTML als "View" ohne die Hilfe von etwas anderem verwendet.

Darüber hinaus ist HTML sehr eingeschränkt, wenn es um Funktionen für Anwendungen geht. HTML ist eine "statische Dokumentenansicht" und keine "Anwendung". Sie können Dinge wie Google Mail tun, aber wenn Sie Google Mail mit einer echten E-Mail-Anwendung (Outlook, Thunderbird, Notes) vergleichen, werden Sie schnell sehen, dass echte Desktop-Apps viel mehr Funktionen bieten.

+0

Danke für deine Antwort, aber ich denke, das ist nicht genau das, wonach ich suche. Ich möchte eine unabhängige Anwendung erstellen, und es wäre nicht notwendig, Firefox oder eine andere Anwendung (außer Java) zu installieren. PyQt kann eine gute Methode für Desktop-Anwendungen sein, aber Python ist kein Java und Qt ist kein HTML. In der Tat ist Qt mehr wie Swing, etc. Grüße. – sinuhepop

+0

Sehen Sie meine Änderungen: Was Sie wollen, ist wahrscheinlich unmöglich, wenn Sie auf alle Ihre Punkte bestehen. –

2

Wenn Sie die JavaScript-Bibliothek ExtJs verwendet haben, können Sie sie mit Adobe AIR verwenden, um eine gut aussehende Desktop-basierte Web-App zu erstellen.

Die Erstellung von App in Adobe AIR ist auch einfach und elegant mit dem Flex Builder IDE.

+0

Ich liebe ExtJS;) Wie bereits erwähnt, ist das Problem, dass AIR nicht für Java-Programmierung ist und Sie keine ausführbare Datei erhalten: der Benutzer muss AIR installieren. Korrigiere mich, wenn ich falsch liege, bitte. Und danke! – sinuhepop

+0

Sie müssen Aptana damit versuchen. Sie haben eine Reihe von Beispielen, um Sie in Schwung zu bringen. –

+0

Sie können merapi API (Code in Java) und dann Front-End mit AIR verwenden. Bündeln Sie App und Installer in einem Set. – techzen

2

Wenn Ihre Option einen leichten Server einbindet, überprüfen Sie, ob winstone nicht vollständig J2EE-kompatibel ist, aber für das, was Sie benötigen, ausreichen sollte. Über den Browser bin ich kein großer Fan von swt selbst, es kompliziert viel plattformübergreifende Bereitstellung, so dass es wahrscheinlich lohnt, im Auge zu behalten jwebpane, noch nicht ganz fertig, aber wahrscheinlich die Lösung, die Sie benötigen.