Java-Anwendungen so anbieten, dass sie jeder starten kann ;)

Status
Nicht offen für weitere Antworten.

MichiM

Bekanntes Mitglied
Hallo,


möchte meine Swing-Anwendungen nach Möglichkeit so anbieten, dass auch Leute, die mit der Konsole sonst nicht so viel zu tun haben, die Anwendung starten können.

Was ist da heutzutage ein geeigneter Ansatz? Was hat sich da für Euch bewährt?

Setzt Ihr irgendwelche Installer ein?
Löst Ihr es über mitgelieferte Batch/Shell-Skripte?
Andere Ansätze...?

Gibt es evtl. eine schöne Klassen-Bibliothek, von der man seinen individuellen Installer ableiten kann, der die Anwendung in einem dem Betriebssystem entsprechendem Verzeichnis deponiert und je nach Wahl des Anwenders ein feines Icon auf dem Desktop und/oder im Start-Menü generiert? Ließe sich zwar auch selber schreiben, aber bisschen Aufwand wärs schon und zweitens hab ich hier auch nicht alle gängigen Betriebssysteme zur Verfügung, um das dann auch testen zu können. :wink:

Bei Notwendigkeit des Aufrufs über die Konsole seh ich jedenfalls schwarz, da scheiden ca. 75% der User wahrscheinlich schon aus... :wink:


Gruß Michi
 

MichiM

Bekanntes Mitglied
Als JAR biete ich das sowieso an :D, aber ist denn sichergestellt, dass in jedem System, in dem JAVA installiert ist, eine Verknüpfung für JAR-Archive besteht? Bei mir unter XP jetzt schon, aber hat das vielleicht was damit zu tun, dass da eine IDE wie NetBeans oder eclipse die richtigen Eintragungen im System vorgenommen hat oder werden diese Eintragungen bei jeder JAVA-Installation vorgenommen?

=> Können in jedem Betriebssystem, in dem JAVA installiert wurde, JAR-Dateien durch Doppelklick gestartet werden?
 

L-ectron-X

Gesperrter Benutzer
Nein.

1. Muss die passende JRE installiert sein.
(Wenn du ein Programm mit Java 1.5 geschrieben hast, der Benutzer aber nur Java 1.4.2 auf seinem System installiert hat, hast du schlechte Karten.)

2. Dürfen bereits auf dem System installierte Programme die Endung .jar nicht schon für sich zum Öffnen beansprucht haben.
(Verteter, die das gerne machen sind bspw. WinRar und andere Packprogramme.)
 

JPKI

Top Contributor
Da gebe ich meinem Vorposter Recht. Mit diesen Einschränkungen musst du leben.

Wenn JAR-Dateien nicht standardmäßig mit javaw geöffnet werden, muss der Nutzer halt per Konsole arbeiten oder du gibst ihm eine Batchdatei mit.
 

Rydl

Bekanntes Mitglied
das wäre wirklich die einfachste möglichkeit. ein einzeiler reicht ja komplett aus. und wenn du es dem nutzer ganz einfach machen willst, dann kompilierst du das für windows und mac einfach zu einer ausführbaren datei. bei linux kannst du eigentlich davon ausgehen, dass die leute ein shell script starten können ;)
 

MichiM

Bekanntes Mitglied
Wärs da nicht an der Zeit, dass da mal so ein Installer geschrieben wird? :)

Folgende Idee:

1. Man wählt im Installer-Generator (also dem Programm, das es noch nicht zu geben scheint?) das JAR bzw. die zum JAVA-Projekt gehörenden Dateien. Zusätzlich kann man noch ein Standard-Verzeichnis für die Installation im System des Users sowie weitere solcher Optionen wählen.

2. Generator erzeugt nun drei Download-Pakete, jeweils für Windows, Linux und Mac. In jedem Paket befindet sich neben dem JAVA-Projekt ein systemspezifischer Installer, der das übergebene Projekt für das jeweilige Betriebssystem gemäß der dort herrschenden Konventionen installiert. Bei Linux-Usern seh ich jetzt eh keine so großen Probleme, dass sie eine JAVA-Anwendung zum Laufen kriegen, aber Windows-User bekämen durch diese Installation z.B. ein Icon auf dem Desktop bzw. eine Eintragung ins Start-Menü, was die Sache ungemein erleichtern könnte. :wink:
 

L-ectron-X

Gesperrter Benutzer
Was meinst du, wozu Java Webstart dient?
Das ist ein Downloader, JRE-Prüfer, Installer, Versions-Prüfer und Starter in einem...
Komfortabler gehts kaum.
Das Interessante daran ist auch, dass die Dateiendung .jnlp von keinem anderen Programm beansprucht wird.
 

moormaster

Top Contributor
Wieso wird sowas eigentlich immer über die Köpfe der Endnutzer hinweg entschieden? Wer hindert mich denn dran, Solaris zu benutzen z.B.?
 

MichiM

Bekanntes Mitglied
moormaster hat gesagt.:
Wieso wird sowas eigentlich immer über die Köpfe der Endnutzer hinweg entschieden? Wer hindert mich denn dran, Solaris zu benutzen z.B.?

Jemand, der mit Solaris arbeitet, kriegt eine Java-Anwendung zum Starten. Bei den meisten Windows-Usern dagegen geht das nicht aus dem FF, wenn der Doppelklick nicht ausreicht, denn Windows ist nun mal DAS System für jedermann. :wink: Beim Mac wär ich auch noch vorsichtig, bei Linux bin ich zuversichtlich, dass es der Anwender ohne Probleme schafft und bei Solaris haben wir es offensichtlich mit einem Profi zu tun. Drum überleg ich noch, ob ich nicht wenigstens für Windows einen Installer mitliefern werde...
 

moormaster

Top Contributor
Hmm sehr eigenwillige Sortierung... Wenn ich so an meine Uni schaue, dann sind da z.B. einige Professoren, die mit Linux (Suse) arbeiten, ohne dass sie mehr Ahnung von PCs haben, als der durchschnittliche XP Home User ^^

Es hängt immer von den Bedürfnissen des einzelnen Nutzers ab. Es ist nicht immer die Entscheidung des Nutzers, welches Betriebssystem ihm zur Verfügung steht und dementsprechend funktioniert das so nicht ganz, dass man vom verwendeten System auf den Erfahrungsgrad des Nutzers schliessen kann ^^
 

MichiM

Bekanntes Mitglied
Gut, ich widersprech nicht: Es funktioniert nicht so ganz, aber es funktioniert relativ gut, meine ich. :wink:

Ansonsten bin ich ja eben gerade auf der Suche nach der idealen Lösung, die immer funktioniert und freu mich über jeden Tip. :D


Ist Web Start eigentlich nach jeder JRE-Installation aktiv?
 

ARadauer

Top Contributor
bricht jetzt schon wieder eine gundsatz diskussion zum thema windows oder linux aus?


was ich fragen wollte: ist es möglich, dass ich eine java applikation über eine bat datei starte, aber das dos fenster gleich wieder geschlossen wird?
 

The_S

Top Contributor
ja, du musst deine Applikation mit javaw anstelle von java starten. Anschließend ein exit in die Bat-Datei schreiben. Der Sinn von sowas, wo es doch auch jars gibt, sei mal dahingestellt :roll:
 

babuschka

Top Contributor
Ich versteh das jetzt nicht ganz: Soll das Programm jetzt plattformunabhängig sein oder nicht?
Was spricht denn gegen eine jar-Datei?
Man kann ja eine Hilfe-Datei mitschicken, in der erklärt ist, was man machen soll, wenn jar mit irgendeinem Packprogramm verknüpft ist.

Ansonsten ist es doch eh nicht plattformunabhängig.
Dann kann man aber gleich ne exe-Datei mit z.B. Lunch4j erzeugen. Dann kann man auch ein Icon hinzufügen, und prüfen, ob die richtige JRE vorhanden ist (mit Verlinkung zur entsprechenden Version).

Aber da über bat oder sonstwie über die Eingabeaufforderung zu gehen :?
 

moormaster

Top Contributor
bricht jetzt schon wieder eine gundsatz diskussion zum thema windows oder linux aus?


was ich fragen wollte: ist es möglich, dass ich eine java applikation über eine bat datei starte, aber das dos fenster gleich wieder geschlossen wird?

Jap das ist möglich (ich vermute es geht um Windows):

start javaw -cp classpath my.main.class

Hobbit_Im_Blutrausch hat gesagt.:
ja, du musst deine Applikation mit javaw anstelle von java starten. Anschließend ein exit in die Bat-Datei schreiben. Der Sinn von sowas, wo es doch auch jars gibt, sei mal dahingestellt :roll:

Wenn man die javaw.exe ausserhalb einer bat-Datei startet, dann erzeugt diese zwar kein eigenes Konsolenfenster und sie gibt auch nix nach stdout aus, aber:

Eine Batch Datei wird ja im Konsolenfenster aufgerufen. Normalerweise wartet eine Batchdatei ja auch die Abarbeitung eines Befehls ab, bevor sie sich beendet oder schliesst. Sprich führt der bloße Aufruf von javaw in einer Batch nicht dazu, dass der darauf folgende exit Befehl erst nach Beendigung des JavaProgramms erreicht wird?

Mit dem Start-Befehl umgeht man dieses warten auf jeden Fall.
 

The_S

Top Contributor
moormaster hat gesagt.:
Eine Batch Datei wird ja im Konsolenfenster aufgerufen. Normalerweise wartet eine Batchdatei ja auch die Abarbeitung eines Befehls ab, bevor sie sich beendet oder schliesst. Sprich führt der bloße Aufruf von javaw in einer Batch nicht dazu, dass der darauf folgende exit Befehl erst nach Beendigung des JavaProgramms erreicht wird?

Mit dem Start-Befehl umgeht man dieses warten auf jeden Fall.

Stimmt, muss ich dir Recht geben!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Java Anwendungen ausführen Allgemeine Java-Themen 3
M Java Anwendungen/Einsatzgebiete - Unterteilung Allgemeine Java-Themen 4
S Werbung in Java-Anwendungen Allgemeine Java-Themen 2
H Mehrere Anwendungen von Java kontrollieren lassen Allgemeine Java-Themen 10
M JAVA Anwendungen laufen auf WIN7 64bit nicht Allgemeine Java-Themen 6
L Deployment von Java Anwendungen Allgemeine Java-Themen 3
J Performance von Java GUI-Anwendungen Allgemeine Java-Themen 2
P 64 Bit Java Anwendungen - Allgemeiner Thread Allgemeine Java-Themen 38
W Java und externe Anwendungen Allgemeine Java-Themen 3
A Auch so können Java-Anwendungen aussehen Allgemeine Java-Themen 18
S 5. Programme, die EXE-Dateien aus JAVA-Anwendungen erstellen Allgemeine Java-Themen 4
P Java --> Anwendungen Starten/Schließen Allgemeine Java-Themen 10
B Rechner stürzt ab wenn Java-Anwendungen geöffnet werden! Allgemeine Java-Themen 2
S Java Web Start Anwendungen laden nicht vernünftig Allgemeine Java-Themen 6
G Java für sicherheitsrelevante Anwendungen ungeeignet? Allgemeine Java-Themen 11
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben