Verbreitung von javabasierten Programmen?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

ich habe ein (Desktop-) Programm in Java geschrieben, das ich nun für Windows - Anwender anbieten möchte.

Die Installation sollte über einen Installer laufen und es sollte über eine Art Wrapper nachher gestartet werden.
Bisher habe ich mir den NSIS (http://nsis.sourceforge.net/) Installer angeguckt und das sieht auch schon mal gut aus.

Ein Problem habe ich aber noch.
Ich will in der Installation eine JRE integrieren, so dass das Programm später über diese JRE "gestartet" wird.
Die JRE Installation soll nicht eigenständig laufen, sondern voll in die Installation des javabasierten Programmes integriert sein.

Wie bekomme ich das hin?

Für Tipps bin ich sehr dankbar
 

JPKI

Top Contributor
Das wird wohl nicht gehen. Ich empfehle dir, eine Setup-Batchdatei zu schreiben und diese mit dem Setup-Programm für dein Java-Programm und dem JRE-Setup auf eine CD zu brennen und die Batchdatei als Autostartdatei zu konfigurieren:

Datei autorun.inf:
[autorun]
open=cmd.exe /c setup.bat
label=Setup-CD

Datei setup.bat:
@echo off
echo Setup beginnt:
jre-setup-1.6.exe
echo Setup für Java-Applikation beginnt
dein_java_programm_installer.exe
 
G

Guest

Gast
Ich bin jetzt auf folgenden Beitrag gestossen:
http://www.java-forum.org/de/viewtopic.php?p=150411#150411

Ist es einfach möglich die JRE Datei umzukopieren, oder sind die noch irgendwie anders im System (speziell Registry) verwurzelt?

Wenn ich die einfach umkopieren könnte, dann könnte ich die JRE Dateien (Ordner) einfach in meine Installation integrieren und bei der Installation in ein Unterverzeichnis meines Programms packen.
Beim Start meines Programms könnte ich dann auch diese JRE Version verweisen.

Klappt das? Hat jemand schon Erfahrung damit gemacht?

Ein weiteres Problem wäre aber das diese JRE Dateien ziemlich groß wären.
Kann man da noch etwas entfernen, so das nur noch die nötigsten Dateien mit in die Installation fließen?
 

Wildcard

Top Contributor
Du kannst theoretisch ein für die Zielplattform kompiliertes JRE mitliefern, die Frage ist nur, warum?
Du müllst den Rechner deiner User voll und blähst dein Programm unnötig auf und das alles ohne nennenswerte Vorteile.
 
G

Guest

Gast
Wildcard hat gesagt.:
und das alles ohne nennenswerte Vorteile.

Ich möchte ein nutzerfreundliche Lösung für das Programm anbieten, wo der Nutzer eine Installationsroutine startet und das Programm funktionsfähig auf seinem Rechner ist.

Hinweise wie: "Sie müssen die Java RE x.x installieren bzw. installiert haben!", sind für mich in diesen Fall sehr Fehl am Platz.
Auch der automatische Start der JRE-Installationsroute, innerhalb der Installation des Programms, schließe ich bei diesem Programm aus.

Wildcard hat gesagt.:
Du kannst theoretisch ein für die Zielplattform kompiliertes JRE mitliefern, die Frage ist nur, warum?
Ich habe nicht nach dem Sinn meiner Lösung gefragt, sondern wie ich eine "Mitlieferung" einer JRE am besten praktizieren.

Da ich aus deinem ersten Satz schließe das es möglich ist, könntest du mir netter Weise auch mitteilen WIE ich dies am Besten mache.

Natürlich würde ich mich auch auf Lösungen einlassen, die nur eine JRE installieren, wenn der Benutzer noch keine aktuelle JRE installiert hat.

Also so eine Lösung.
Code:
if(JRE == installiert) {
 Verweise auf diese JRE
} else {
 Kopiere JRE in Unterverzeichnis des Programms und verweise auf diese.
}

Über sachdienliche Hinweise würde ich mich freuen.
 

JPKI

Top Contributor
Hm. Probier doch folgendes:

Schreib ein Java-Programm, das in den TemporaryFiles des Benutzers eine Datei "jre.installiert.log" erstellt.

In deiner Autostart-Batchdatei prüfst du dann, ob diese Datei existiert. Falls nicht, startest du die JRE-Installationsroutine, denn
wenn der Benutzer keine JRE auf seinem PC hat, wird das Javaprogramm nicht ausgeführt und folglich wird auch keine Datei "jre.installiert.log" geschrieben.

Gast hat gesagt.:
Über sachdienliche Hinweise würde ich mich freuen.
Ich halte das da oben für die benutzerfreundlichste Variante. Auf diese Art und Weise müllst du wenigstens des Benutzers Festplatte nicht unnötig zu. :meld: :applaus:
 

Wildcard

Top Contributor
Ein sachdienlicher Hinweis ist Webstart.
Einfacher kann man Installation nicht machen.
http://java.sun.com/products/javawebstart/
Ich verstehe einfach nicht warum jeder der Meinung zu sein scheint das ausgerechnet sein Programm etwas so besonderes ist, dass es in einer exklusiven JRE laufen muss, und das obwohl auf ca. 95% aller Desktop Systemen eine JRE vorhanden ist und eine fehlende einfach über Webstart oder Installationsanweisungen nachgeliefert werden kann :roll:
 
G

Guest

Gast
Wildcard hat gesagt.:
das ausgerechnet sein Programm etwas so besonderes ist, dass es in einer exklusiven JRE laufen muss, und das obwohl auf ca. 95% aller Desktop Systemen eine JRE vorhanden ist

Ich will ja keine exklusive JRE haben, bloß sollen es die Benutzer so bequem wie möglich haben.
Ich verstehe es z.B. nicht warum viele Entwickler glauben, das die Benutzer ihres Programms genau so "schlau" und "innovativ" sind wie sie selbst und genau wissen was sie machen.

Darüberhinaus glaube keine Statistik die du nicht selber gefälscht hast:
- 95% aller User haben eine JRE installiert
- 100% alle User lassen Java Applets in ihrem Browser standardmäßig anzeigen
- 98% alle User haben das FlashPlugin
- 100% aller User haben JavaScript in Ihrem Browser aktiviert
- usw.

Wer glaubt das? Was sag das über die verwendeten Versionen aus?


Auch hast du mir noch keine Lösung genannt wie ich die JRE mitliefere.
Aus deinen bisherigen Beiträgen schliesse ich nämlich das du weißt wie das geht.



Wegen dem Webstart hätte ich eine Frage.
Wie wird dort abgefragt, ob eine JRE installiert ist oder nicht.

Meine bescheidende, bisherige Lösung:
Über den Installer Frage ich in der Registry die verwendete Java Version ab.
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
Ich will ja keine exklusive JRE haben, bloß sollen es die Benutzer so bequem wie möglich haben.
Ich verstehe es z.B. nicht warum viele Entwickler glauben, das die Benutzer ihres Programms genau so "schlau" und "innovativ" sind wie sie selbst und genau wissen was sie machen.
Das betrifft wohl eh nur Windowsnutzer, und jeder von ihnen ist mit entsprechender Anleitung durchaus dazu in der Lage auf eine 'exe' zu klicken.
Weiterhin haben DAUs die Angewohnheit so lange auf einen 'weiter' Knopf zu drücken bis sie ein Ende erreicht haben(egal was da für lustige Sachen auf dem Bildschirm stehen), es spricht also wenn du hartnäckig darauf bestehst nichts dagegen einen Installer zu verwenden der bei Bedarf die JRE installiert.

Lies dir durch was SUN zu der Sache zu sagen hat
http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/contents.html

Meine persönliche Meinung:
Nimm Webstart und gut ist die Sache.
Webbrowser kann jeder bedienen, einen Link klicken und schon wird das Programm heruntergeladen, eine Verknüpfung auf den Desktop und ins Startmenü gelegt und bei Bedarf noch die richtige JRE draufgespielt.
Und einen Autoupdater hast gleich mit...
Absolut DAU freundlich, wer das nicht blickt war auch nicht in der Lage seinen Rechner einzuschalten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Unlimited Strength Policy. Frage Verbreitung der Anwendung Allgemeine Java-Themen 1
G Verbreitung von Java 6 Allgemeine Java-Themen 8
N Lizenzensierung von Java Programmen unter Linux Allgemeine Java-Themen 3
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
S Reverse Engineering bei Java Programmen Allgemeine Java-Themen 2
H Von normalen Java Programmen zu Java Serveranwendungen für das WWW? Allgemeine Java-Themen 3
I Messung von Programmen Allgemeine Java-Themen 2
O Gucken, ob bereits Töne (von wild fremden Programmen) ausgegeben werden Allgemeine Java-Themen 5
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
H Datenaustausch zwischen zwei Java-Programmen Allgemeine Java-Themen 5
H Mit Java-Programmen Geld verdienen Allgemeine Java-Themen 6
F Kommunikation zw 2 Java-Programmen mit unterschiedl Compiler Allgemeine Java-Themen 13
E Metainformationen zu Java- Programmen Allgemeine Java-Themen 2
M mit anderen programmen komunizieren? Allgemeine Java-Themen 2
J darstellungsfehler in div. java programmen Allgemeine Java-Themen 11
G Kommunikation von zwei Java-Programmen Allgemeine Java-Themen 3
A öffnen und schließen von programmen aus java Allgemeine Java-Themen 3
M Kommunikation zwischen 2 Programmen Allgemeine Java-Themen 7
T Nach Programmen suchen Allgemeine Java-Themen 4
V Kommunikation zwischen Programmen und Threads Allgemeine Java-Themen 7
J Quellcode aus JAVA Programmen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben