Wie liefere ich mein Java-Programm richtig aus?

Status
Nicht offen für weitere Antworten.

Angel4585

Bekanntes Mitglied
Wie ich in einem anderen Thread geschrieben habe, stelle ich eins meiner Java-Programme zum Download bereit und möchte dazu die passende JRE-Version ausliefern.

Probleme:
1.Was für eine Ordnerstruktur ist geeignet?
2.Was muss ich für verschiedene Betriebssysteme beachten?
3.In welcher Form sollte man das Paket ausliefern?


Lösungen:

1. Ordnerstruktur(Mein Vorschlag)

/Programm/JRE/
/Programm/bin/Programm.jar
/Programm/data/


2. Betriebssysteme

Leider habe ich von Betriebssystemen keine Ahnung weswegen ich da auf die Hilfe der User hoffe
Ich vermute es muss für jedes Betriebssystem ein eigenes JRE benutzt werden, was heisst:
a) Für jedes System ein eigenes Paket
b) Ein Paket mit allen JRE drin
Was ist sinnvoller? Bei vielen JRE wird das Paket auch ziemlich groß denke ich.
Wie müssen diese JRE dann jeweils installiert werden?


3. Auslieferungsform

Ein Vorschlag war das Paket zu packen, also zip oder ähnliches.
Ich würde dann einfach das Verzeichnis "Programm" (s.o.) packen.

Ich hoffe das ist korrekt.
 
S

SlaterB

Gast
muss man eine JRE nicht erst installieren?
was ist wenn der User schon eine JRE hat?
das würde ich separat machen,
vielleicht mit auf der Seite anbieten, aber z.B. nicht auf jeden Fall mitkopieren und dann gar im Programm-Ordner

edit: ok, im anderen Thread nebenbei steht ja was dazu ;)
 

Angel4585

Bekanntes Mitglied
Wie läuft das eigentlich ab wenn z.B. 1.4 installiert ist und 1.6 benötigt wird? Kann ich das in mienem Programmcode prüfen und dann zur Downloadseite verweisen?
 

nbkr

Mitglied
Für Windows gibt es mit "launch4j" und izpack Möglichkeiten .exe Dateien zu erstellen, welche auf die richtige Version des JRE prüfen und gebenfalls das ganze Nachladen.

Für Linux sollte das Programm als RPM oder DEB Datei, oder noch besser als Repository geliefert werden. Sowohl RPM als auch DEB Dateien können Abhängigkeiten definieren. Man kann also bestimmen dass, das Programm z.B. java6 benötigt und die Paketverwaltungssoftware des Systems installiert dies dann automatisch nach.

Bei MacOSX kann man Programme als .dmg bzw. .app Dateien ausliefern.
 

deleted

Bekanntes Mitglied
Ist dein Programm Open Source unter der BSD oder GPLv3 Lizenz?

Wenn ja, ist das Anfertigen von Paketen für Linuxnutzer nicht nötig.
Ein Link zum SVN langt völlig da eh jeder selbst compiliert...
 

nbkr

Mitglied
R.B. hat gesagt.:
Wenn ja, ist das Anfertigen von Paketen für Linuxnutzer nicht nötig.
Ein Link zum SVN langt völlig da eh jeder selbst compiliert...

Den meisten ist vermutlich ein RPM oder eine DEB lieber. Nicht jeder kann mit javac, svn und co. umgehen. Ein einfaches "apt-get install programm" geht viel schneller und einfacher.
 

deleted

Bekanntes Mitglied
naja er schrieb, er hat von Betriebssystemen keine Ahnung ;)
Klar ist es bequem, wenn ein Entwickler mir das gleich so baut, dass ich es über den Paketmanager installieren kann.
So stell ich meine Sachen auch meist bereit.

Aber lebensnotwenig ist das nicht unbedingt.
Irgendein User fummelt schon ne Copileranleitung oder ein Paket zusammen. Oder ein Distributor nimmt es auf...

Ist doch das Prinzip freier Software:
Der Programmierer programmiert, die Usercommunity verteilt und nutzt.

Das ist im Übrigen auch der Grund für das sagenhafte Entwicklungstempo bei Linux.
Linux ist die am effizientesten arbeitende "Softwarefirma" die ich kenne.
Bei proprietärer Software wird das Rad täglich 10x neu erfunden, bei freier Software macht jeder seinen Job.
Und im Übrigen ist das ja eigentlich auch nicht die Aufgabe eines Entwicklers sich mit Installationsproblemen bei den Usern rumzuärgern.
Das ist der Job des Distributors.
 

babuschka

Top Contributor
@ R.B.
Kann deine Meinung nicht ganz teilen. Natürlich sollte sich der Entwickler um so was Gedanken machen.
Schreckt nicht viele Windows-User Linux ab, weil vieles so kompliziert ist?
Ich will hier keine Grundsatzdiskussion lostreten, ich will nur damit sagen, dass es auch bei Linux User gibt, die keine Profis sind :roll:
 
T

tuxedo

Gast
Um zurück auf die Ursprungsfrage zu kommen:

Die Ordnerstruktur ist denke ich soweit okay. Würde ich auch nicht andes machen.

Und ja: Für jedes OS müsstest du ein Paket schnüren das die passende JRE im JRE-Ordner deiner Ordnerstruktur hat.

Da du dich mit Betriebssystemen nicht so auskennst schlage ich vor du bleibst erstmal bei dem was du kannst und erweiterst dann später wenn das bei Windows (ich nehme das mal als "bekannt" an) geklappt hat.

Hier kannst du nachlesen was man aus einem JRE alles streichen kann, sprich was alles "optional" ist.

Zum starten deines Programms mit der mitgelieferten JRE solltest du nicht einfach

Code:
java -cp .\meineBibliotheken -jar ./bin/MeinProgramm.jar
aufrufen, denn dann wird die Java Version benutzt die schon installiert ist. Du solltest hier explizit die Java-Version aufrufen die du mit auslieferst.
Wenn du mit .BAT Dateien zum starten arbeitest, kannst du das Beispielsweise so machen:

Code:
.\JRE\bin\java.exe -cp .\meineBibliotheken\meineBibliothek.jar;.\JRE\bin\lib\rt.jar -jar ./bin/MeinProgramm.jar

Habs nicht explizit getestet, aber so in etwa sollte es funktionieren.

Ausliefern kannst du es dann als ZIP (dann ist es jedem selbst überlassen mit was er es entpackt und wo er es entpackt), oder du packst die ganze Ordnerstruktur mit einem Installer (izPack, B1G Installer, .-...) zusammen und hast eine schöne Installationroutine die dann (bei Windows zumindest) auch eine Verknüpfung mit dem Desktop basteln kann.

- Alex
 

deleted

Bekanntes Mitglied
@berndmarquard & @Threadstarter

Also das Gefummel irgendwelcher User in Programmdateien sollte eben unterlassen werden.
Das ist doch gerade der Grund warum Linux so sicher ist:
Die Distributoren kümmern sich um alles.
Und im Übrigen hab sogar ich als Informatiker nicht wirklich Lust mich damit rumzuärgern, welches Paket nun aktualisiert werden muss, inkompatibel ist usw.

Aber ganz andere Idee;
Warum nicht Webstart nutzen?
Das ist
a) sehr sicher
b) plattformunabhänig

der User muss nur einmal über seinen Paketmanager Java installieren. Java wird dann vom Distributor geupdatet und Webstart kümmert sich um die Anwendung!

SUN hat diese ganzen Technologien ja nicht zur Selbstbelustigung entwickelt, sondern damit eben ein Programm problemlos in einer heterogenen Umgebung ausgeführt werden kann...

Alternativ sollte man aber dann dennoch einen Lesezugriff aufs SVN zur Verfügung stellen, damit z.B. Leute, die die Software in ihrem Netzwerk lokal verteilen wollen dies einfach erledigen können!
 

Yzebär

Bekanntes Mitglied
R.B. hat gesagt.:
Aber lebensnotwenig ist das nicht unbedingt.
Irgendein User fummelt schon ne Copileranleitung oder ein Paket zusammen.

Genau diese Einstellung ist es, die dem Siegeszug von Linux auf dem Desktop oftmals im noch im Wege steht!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
M Brainstorming für mein Projekt Allgemeine Java-Themen 30
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
T log4j2 Wo liegt mein Logfile? Allgemeine Java-Themen 3
Thallius Warum läst mein replace die Klammern drin? Allgemeine Java-Themen 10
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
C Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory" Allgemeine Java-Themen 13
G Mein PDF Projekt mit iText Allgemeine Java-Themen 2
K Was ist mein Fehler? Allgemeine Java-Themen 2
itwestnet Mein Java-Programm läuft nicht in China Allgemeine Java-Themen 4
Thallius App-Sprache in der App ändern. Wo ist mein Denkfehler? Allgemeine Java-Themen 6
M Mein erstes TicTacToe :-) Allgemeine Java-Themen 3
A Applet Mein Applet verursacht Browserabsturz Allgemeine Java-Themen 8
Ollek MVC - Anwendung auf mein Projekt Allgemeine Java-Themen 18
K Wo ist mein Fehler? Allgemeine Java-Themen 21
J Mein eigener Messenger und dessen Probleme Allgemeine Java-Themen 48
C Hilfe! Mein Java mag nich mehr ganz... Allgemeine Java-Themen 11
F VideoIntro für mein Programm Allgemeine Java-Themen 2
A Wie lasse ich mein Programm als Daemon laufen? Allgemeine Java-Themen 4
G Entscheidungsproblem für mein Vorhaben, zwischen Java und C# Allgemeine Java-Themen 35
G Wie kann ich in mein Programm eine Updatefunktion einbauen Allgemeine Java-Themen 3
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
V Beratung zum Bestimmen der "Mittel"(Java,Sql) mein Allgemeine Java-Themen 3
S mit welchem befehl kann ich mein programm autom. schließen Allgemeine Java-Themen 3
R Mein Applet läuft in der IDE aber nicht. Allgemeine Java-Themen 2
M Bitte Testen: Mein Multi-File Editor Allgemeine Java-Themen 30
B Fehler:Mein Applet kann nicht auf zwei txt-Dateien zugreifen Allgemeine Java-Themen 2
C Warum wartet mein thread nicht? Allgemeine Java-Themen 2
F Datei auslesen - wo ist mein Fehler? Allgemeine Java-Themen 9
T läuft mein Programm schon? - wie feststellen Allgemeine Java-Themen 6
T Warum mein such-tool schneller als Windows such-tool? Allgemeine Java-Themen 5
A Wie mach ich, das mein Button schneller reagiert. Allgemeine Java-Themen 13
A mein Frame wird nicht schnell genung aktualisiert Allgemeine Java-Themen 7
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
D Mein Bäumchen Allgemeine Java-Themen 6
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

Ähnliche Java Themen

Neue Themen


Oben