Java EE- und Desktop-Apps

8

Ich bin neu in Java und habe gerade mit einfachem Code angefangen.

Ich bin auf einem Linux-Rechner, verwende den vim-Editor, benutze javac zum Kompilieren und 'java' zum laufen Programme.

Im Moment suche ich zunächst nach einer Desktop-Anwendung mit Java. Ich habe von Java (EE / SE / ME) gehört und meine Annahmen über sie sind:

  • "Core Java" ist die "grundlegende" Java-Sprache (mit allen Regeln für Variablen, Schleifen, Methoden Klassen usw.).
  • Java SE ist für Desktop-Apps.
  • Java EE ist für Web-Anwendungen (mit dem HTTP-Protokoll).
  • Java ME ist für mobile Apps.

Ich habe jedoch erfahren, dass der Unterschied zwischen ihnen die "Spezifikation" ist, von Unterschied zwischen Java SE & amp; Java EE

Meine Frage ist also, kann ich Desktop-Apps auch mit Java EE erstellen? Oder dienen sie nur zum Erstellen von Web Apps?

    
M-D 04.01.2012, 16:58
quelle

5 Antworten

2

Okay Leute, ich war neu in Java und jetzt bin ich ein bisschen "alt" geworden. So könnte ich es herausfinden.

Das ist es:

Das EINZIGARTIGE Ding zur Java-Entwicklung ist ein Java-Compiler, den wir bekommen, wenn wir ein JDK installieren und die Sache, die wir benötigen, um ein Java-Dienstprogramm auszuführen, ist eine JVM. Das sind also die einzigen Dinge, die wir für JEDE Art von Java-Entwicklung benötigen (egal ob Desktop, Web oder Mobile).

Was ist dann Java SE, Java EE und Java ME?

Das sind die oben genannten zwei Dinge (Java-Compiler + JVM) plus eine Reihe von Bibliotheken (SE für Desktop, EE für Web, ME für Mobile). Wenn also einer von uns genug Zeit hat und einen Java Compiler + JVM hat, können wir für all diese Funktionalitäten eigene Bibliotheken erstellen.

Aber nach dem Konzept "Rad nicht neu erfinden" und weil wir besser mit einer Bibliothek arbeiten werden, die seit Jahren reibungslos läuft, verwenden wir alle die Tools / Bibliotheken von SE, EE und ME.

Die Antwort ist, dass ich mit einem Java-Compiler (/ usr / bin / javac auf einem Linux-Rechner) jede Art von Anwendungen entwickeln kann. Das einzige ist, dass es eine Menge "Neuerfindung des Rades" geben wird. Und alle Java-Apps laufen auf der gleichen JVM (egal welcher Art), im Fall von Linux (/ usr / bin / java).

    
M-D 31.05.2012, 04:49
quelle
7

Java EE ist eine große Sammlung von Technologien, die zusammen einen mehr oder weniger kohärenten Rahmen für den Aufbau von Unternehmensanwendungen bilden.

Heutzutage werden im Unternehmen Serveranwendungen häufig verwendet, und so konzentrieren sich viele Technologien auf Serverfunktionen und / oder Multi-User. Serving Web-Anfragen ist nur ein Teil davon, es gibt auch Funktionen für z. Verarbeitung von Nachrichten (JMS) und Remote-Methodenaufrufen von Servern (Remote-EJBs).

Eine vollständige Java EE-Implementierung wie GlassFish oder JBoss AS wird nicht so oft für Desktop-Anwendungen verwendet (es sei denn, es handelt sich um eine Anwendung, die für den persönlichen Desktop gedacht ist, aber Browser-basiert).

JEDOCH ...

Fast alle Technologien, aus denen Java EE besteht, können unabhängig von Java SE und in Kombination mit einer grafischen Benutzeroberfläche verwendet werden.

Zum Beispiel gibt es in Java EE ein ORM-Framework namens JPA, das das Speichern von Objekten in einer Datenbank erleichtert. Eine Datenbank, möglicherweise eine eingebettete, kann natürlich mit Desktop-Anwendungen verwendet werden, und dies ist oft sinnvoll. Z.B. Eine E-Mail-Anwendung könnte E-Mails in einer solchen Datenbank speichern. JPA verfügt in seiner Spezifikation explizit über einen Abschnitt, der in Java SE verwendet werden kann.

Es gibt auch ein Framework für die Abhängigkeitsinjektion in Java EE namens CDI. Dies macht es unter anderem leicht, Abhängigkeiten zu isolieren und zu erreichen. Es ist eine natürliche Ergänzung für grafische MVC-Anwendungen, z. In einem Controller das Modell finden. Wie JPA hat CDI explizite Unterstützung für Java SE.

Als letztes Beispiel benötigt Java EE standardmäßig JMS, aber in diesem Fall ist JMS nicht einmal speziell eine Java EE-Unterspezifikation. Java EE benötigt nur einen JMS-Provider, so dass Java SE natürlich JMS verwenden kann (es gibt sogar eine API in JMS, die nur in Java SE verwendet werden darf). Messaging kann in gewisser Weise Teil eines Architekturmusters sein, das in Desktop-Anwendungen genauso nützlich ist wie in Server-Anwendungen (das Desktop-Toolkit Cocoa zum Beispiel nutzt es intensiv).

Es gibt mehr Java-EE-Technologien, die in Desktop-Anwendungen verwendet werden können, aber ich hoffe, dass Ihnen das oben genannte eine Idee gegeben hat.

    
Arjan Tijms 04.01.2012 20:00
quelle
5

Java EE ist eine Sammlung von Technologien, einschließlich Web-Apps.

Das meiste davon ist jedoch nicht - Dinge wie JMS und JPA sind Teil von Java EE und sind anwendungsneutral.

    
Dave Newton 04.01.2012 17:00
quelle
3

Java EE ist Java SE + Enterprise-Technologien. Also ja, Sie können Desktop-Anwendung mit Java EE erstellen.

    
Jan Zyka 04.01.2012 17:03
quelle
3

Java EE ist nur eine Reihe von Spezifikationen. Die meisten seiner Implementierung benötigen etwas mehr als Java Runtime Environment für JSE verwendet.

Verschiedene Teile von Java benötigen unterschiedliche Arten von Containern.

Teile von Java EE 6 Sie können auf JRE laufen:

Hinweis zu JSR 299 von der Weld-Website :

  

Die Spezifikation beschränkt jedoch nicht die Verwendung von CDI auf Java EE   Umgebung. In der Java SE-Umgebung sind die Dienste möglicherweise   bereitgestellt von einer eigenständigen CDI - Implementierung wie Weld (siehe Abschnitt   18.4.1, "CDI SE Module", oder sogar durch einen Container, der auch die Teilmenge von EJB implementiert, die für die eingebettete Nutzung durch das EJB 3.1 definiert ist   Spezifikation.

GlassFish kann die Java SE-App auch innerhalb von Embedded Enterprise Bean Container ausführen JVM als Java EE-App, sodass Sie beispielsweise über lokale Schnittstellen auf Java EE's EJB zugreifen können.

Sourace der Bilder

    
Damian 18.03.2012 01:01
quelle

Tags und Links