Was ist nötig für ein Java-Programm auf Server für Website

celdri

Mitglied
Hallo zusammen

bitte entschuldigt die vermutlich einfach Frage. Ich habe ähnliche Fragen und die Antworten schon oft gelesen, aber ich bin mir nicht sicher, ob ich das richtig verstehe.
Auf einer Website würde ich gerne einen Molmassenrechner einbauen. Das Java-Programm dafür habe ich schon geschrieben (mein erstes Programm, ich habe gerade erst mit Java bzw Programmieren allgemein angefangen, daher auch meine Ahnungslosigkeit). Dazu müsste man auf der Website eine Summenformel eingeben, etwa C2H6O, einen Button anklicken und dann soll auf der Website das Ergebnis 46.07 g/mol erscheinen. Wie schaffe ich es, dass ein Browser das Programm starten kann und das Ergebnis anzeigt? Ist JWS das richtige Stichwort und ist dafür wirklich Java EE nötig? Oder gibt es nicht doch eine einfach Möglichkeit, wenn nur das Verarbeiten eines Strings notwendig ist?

Vielen Dank und Grüsse
Celdri
 
Ist JWS das richtige Stichwort und ist dafür wirklich Java EE nötig? Oder gibt es nicht doch eine einfach Möglichkeit, wenn nur das Verarbeiten eines Strings notwendig ist?
JWS ist eher ein falsches Stichwort, Java EE wäre ein passendes Stichwort, ist aber nicht zwingend nötig.

Möglichkeiten gibt es wie Sand am mehr. Welche davon passend ist, würde ich dabei im wesentlichen von deiner Erfahrung und davon, wie viel zu lernen willst, abhängig machen. Wenn du sehr am Anfang stehst und das eher so ein "One Shot"-Projekt ist und du danach nie wieder was mit Webentwicklung machen willst, sähe die Antwort anders aus, als wenn du zumindest grundlegende Erfahrung mit Projekten hast und Web auch eine Richtung ist, in der du weitermachen willst.

Ich würd deshlab auch noch gar keine Empfelung aussprechen – vielleicht kannst du ja etwas mehr zu deinem Background sagen.
 
Ich bin Chemiker (daher auch das Projekt) und habe in meinem Job eigentlich nichts mit Programmierung oder Webentwicklung zu tun. Als Hobby habe ich vor Kurzem mit Java ist auch eine Insel angefangen und möchte schon gerne damit weiter machen, wobei mich das für mich etwas undurchsichtige Lizenzmodell gerade etwas abschreckt.
Von Webentwicklung habe ich bis auf grundlegende HTML- und CSS-Kenntnisse bisher keine Ahnung, möchte aber gerne mehr lernen und dafür starten mit diesem Projekt, hätte aber noch ein paar Ideen, wenn das klappen sollte. Aber mir fehlen sicher viele Grundlagen, daher wäre ich über eine einfache Lösung erstmal sicher froh, bin aber immer interessiert mehr dazuzulernen.
 
So etwas *könnte* man mit HTML und JavaScript (nicht mit Java verwechseln...) lösen: der Nutzer gibt bei vorgegebenen chemischen Elementen "nur" einen ganzzahligen Wert ein, mit JavaScript berechnet man den mol-Wert (wobei bei Nichteingabe standardmässig der Wert "0" angenommen werden soll). Interne Berechnung dann z.B. 0*He + 2*C + 0*Na +6*H * 1*0 *..... (bzw. statt "He", "H", "Na",... dann die jeweilige Masse). Bei der Stringeingabe als solches darf man sich sonst mit Fehleingaben und Regexen befassen...
 
Vielen Dank für die Antwort. Ja, das wäre sicher möglich. Aber hinterher sollen mal noch etwas kompliziertere Rechnung gemacht werden und in Java habe ich das Auflösen des Strings und die anschließende Rechnung schon realisiert. Daher würde ich gerne wissen, wie ich das so über ein Java-Programm lösen kann, das auf dem Server läuft. Zum einen lerne ich es dann und kann das vielleicht noch weiter anwenden.
 
Nur, da JWS (Java Web Start) erwähnt wurde vom TE: Das ist ja abgekündigt von Oracle. Das sehe ich auch nicht wirklich als Lösung an für sowas.

Aber wenn das Ziel wirklich sein sollte, dass das Java Program per Web auf Client Computern ausgeführt wird, dann wäre https://openwebstart.com/ zu nennen.

Setzt aber natürlich voraus, dass es auf den Clients installiert ist, so dass dann eine JLNP Datei ausgewertet wird, die notwendigen Ressourcen herunter geladen werden und dann die Applikation lokal gestartet wird.

Die eigentlichen Lösungen sind genannt worden meine ich und es sollte einer dieser Wege eingeschlagen werden.
 
Wenn es nur darum geht... Das hätte ich allerdings etwas anders formuliert: Das OpenJDK ist Open-Source, kostenlos und praktisch die Basis aller Java-"Distributionen". Nun gibt es Anbieter, die eigene Builds erstellen und in dem Zusammenhang zusätzliche Dienste (ggf. auch Software) anbieten, die dann eben kostenpflichtig sind.

Sprich: willst Du Java mit vertraglich garantiertem Support, dann nimmst Du gegen Gebühr das Angebot des Anbieters Deines Vertrauens an, ansonsten wirst Du mit einer Open-Source-Variante glücklich. Neben dem OpenJDK gibt es freie Builds von z. B. AdoptOpenJDK, Bellsoft und Azul.
 
OK, danke, dann versuche ich mich mal über die beiden letzteren schlau zu machen.

Wovon sprichst Du?
Du hast bestimmt recht, wie du weiter unten den Unterschied erklärst. Für mich ohne Ahnung lese ich nur, dass bestimmte Teile in Java EE enthalten sind, die ich zumindest meiner Ansicht nach jetzt für mein Problem gebraucht hätte. Da ich das aber nur mal ausprobieren will, werde ich sicher nicht dafür zahlen, ich kann ja noch gar nicht abschätzen, was ich für mein Geld dann überhaupt bekomme. Eigentlich will ich nur ein bisschen Spass haben beim Java lernen. Und da schreckt mich das eben ab. Lieber wäre es mir, ich kann alles ausprobieren und sollte ich wirklich mal Geld damit verdienen (recht unwahrscheinlich), zahle ich von mir aus auch was dafür.

Aber wenn das Ziel wirklich sein sollte, dass das Java Program per Web auf Client Computern ausgeführt wird, dann wäre https://openwebstart.com/ zu nennen.
Vielleicht habe ich das falsch geschrieben, aber nein, ich hätte gerne, dass das Programm eben nicht auf dem Client sondern auf dem Server ausgeführt wird. Sonst braucht der Client doch Java, oder? Das würde ich eben gerne verhindern. Der Client soll nur das Ergebnis im Browser angezeigt bekommen.

An alle schon mal ein Dankeschön für die Diskussion!
 
Vielleicht habe ich das falsch geschrieben, aber nein, ich hätte gerne, dass das Programm eben nicht auf dem Client sondern auf dem Server ausgeführt wird. Sonst braucht der Client doch Java, oder? Das würde ich eben gerne verhindern. Der Client soll nur das Ergebnis im Browser angezeigt bekommen.

An alle schon mal ein Dankeschön für die Diskussion!
In dem Fall halte ich Java nicht unbedingt für die erste Wahl. Dann brauchst du einen Server (Tomcat etc.) der Java Anwendungen ausführt und ein entsprechendes Framework. Das nur für ein kleines Formular zu nutzen, wo etwas gerechnet werden soll, hört sich nach Overkill an - insbesondere da das mit den Standard-Webspaces auch nicht gehen wird. Da ist entweder Javascript oder PHP vermutlich die bessere Alternative.
 
Da ich das aber nur mal ausprobieren will, werde ich sicher nicht dafür zahlen, ich kann ja noch gar nicht abschätzen, was ich für mein Geld dann überhaupt bekomme.
Nochmal: man muss nichts bezahlen. Du lädst Dir von z. B. AdoptOpenJDK ein Java herunter, dann eine IDE und schon kannst Du damit machen, was Du willst.

Lieber wäre es mir, ich kann alles ausprobieren und sollte ich wirklich mal Geld damit verdienen (recht unwahrscheinlich), zahle ich von mir aus auch was dafür.
Selbst dann musst Du nichts bezahlen.
 
Nochmal: man muss nichts bezahlen. Du lädst Dir von z. B. AdoptOpenJDK ein Java herunter, dann eine IDE und schon kannst Du damit machen, was Du willst.


Selbst dann musst Du nichts bezahlen.
Da ich wie bereits geschrieben mein Java-Programm fertig habe, ist mir das soweit bewusst. Dennoch gibt es offensichtlich Teile, die ich nicht ohne Java EE verwenden kann. Aber das führt sehr weit weg von dem, was ich eigentlich wissen wollte, daher würde ich die Diskussion gerne dabei bewenden lassen.

Kurz zusammengefasst: Wenn ich ein Java-Programm auf einem Server laufen lassen und durch Interaktion mit einen Browser starten will, benötige ich einen entsprechenden Server (bspw. Tomcat) und ein entsprechendes Framework (bspw. Vaadin), richtig?
 
Da ich wie bereits geschrieben mein Java-Programm fertig habe, ist mir das soweit bewusst. Dennoch gibt es offensichtlich Teile, die ich nicht ohne Java EE verwenden kann. Aber das führt sehr weit weg von dem, was ich eigentlich wissen wollte, daher würde ich die Diskussion gerne dabei bewenden lassen.

Kurz zusammengefasst: Wenn ich ein Java-Programm auf einem Server laufen lassen und durch Interaktion mit einen Browser starten will, benötige ich einen entsprechenden Server (bspw. Tomcat) und ein entsprechendes Framework (bspw. Vaadin), richtig?
Im Kurzem: Ja (Auch für Java EE muss man übrigens nichts bezahlen, das nur am Rande).

EDIT: Nachtrag, man kann natürlich auch die Eingabe per HTML/Javascript/PHP entgegennehmen und per Serverseitiger Skriptsprache wie PHP ein Java Programm ansprechen - dann brauch man keine so enge Integration. Der Sinn sei aber mal dahingestellt.
 
Ergänzend zur Antwort von @LimDul: Du könntest auch selbst einen HTTP-Server schreiben oder eine entsprechende Bibliothek verwenden aber es ist nun einmal einfacher, einen Application Server zu verwenden, der einem das (und vieles mehr) abnimmt. Theoretisch müsste es auch möglich sein, die CGI-Schnittstelle eines bestehenden Web-Servers (z. B. Apache) zu verwenden. Das habe ich mit Java aber noch nicht versucht.
 
Danke nochmal an alle für die Hilfe!

Ach, ich glaube, ich weiß woher die Verwirrung kommt: Die "Enterprise Edition" ist keine spezielle oder gar kostenpflichtige Ausgabe von Java. Java EE ist einfach die Bezeichnung für eine Sammlung von Spezifikationen 🙂

Hmm, ich bin vermutlich tatsächlich verwirrt. Hauptsächlich wegen Artikeln wie diesem: Die Nutzung von Java ist nicht mehr kostenlos

Aber wenn ich das jetzt richtig gesehen habe, ist nur der Release Cycle angepasst worden und die längere Nutzung einer Version ist nun kostenpflichtig, wenn man Updates und Support möchte, korrekt?
 
Hmm, ich bin vermutlich tatsächlich verwirrt. Hauptsächlich wegen Artikeln wie diesem: Die Nutzung von Java ist nicht mehr kostenlos

Aber wenn ich das jetzt richtig gesehen habe, ist nur der Release Cycle angepasst worden und die längere Nutzung einer Version ist nun kostenpflichtig, wenn man Updates und Support möchte, korrekt?
Der Artikel ist ja auch verdammt schlecht und falsch, der widerspricht sich ja sogar zum Teil selbst.

Die Änderungen betreffen nur das von Oracle bereitgestellte Oracle JDK, keines der anderen von zB AdoptOpenJDK, Azul, IBM, Amazon, Alibaba, BellSoft, oder SAP bereitgestellten JDKs.
Die Änderungen betreffen nur den produktiven Einsatz des Oracle JDKs, z.B. Software-Entwicklung und private Nutzung fallen beide nicht darunter.

Im wesentlichen ist die ganze Situation besser geworden:
Einmal sind die meisten vorher kommerziellen Features jetzt frei verfügbar, jeder kann sie wie er will nutzen.
Dazu sind die Lizenz-Bedingungen deutlich einfacher geworden: der produktive Einsatz ist kostenpflichtig, und nicht nur die Nutzung von kommerzeillen Features - was gefährlich war, da die zT in der normalen Java-Installation enthalten waren.


Um auf deine Frage zu antworten: kommerzieller Support (=u.a. längere Nutzung inklusive Updates) kostete schon immer. Brauchst du keinen kommerziellen Support, kannst du eine der frei verfügbaren Varianten nehmen, zB von den oben genannten. Die meisten bieten auch da langfristige Updates.
 

Neue Themen


Zurück
Oben