JRE installieren oder nicht ?

Diskutiere JRE installieren oder nicht ? im Plattformprogrammierung Bereich.
V

volkerk

Hallo,

leider bin ich jetzt etwas verwirrt. Folgendes:

Auf meinem Rechner (Windows/) erstelle ich ein JAR . Nun dachte ich wenn dieses Programm auf einem anderen Rechner laufen soll , dass ich dort die JRE (mit der gleichen Versinsnummer) installieren muss.

Nun habe ich aber gelesen es würde reichen wenn man die JRE zusammen mit dem JAR File auf den Rechner kopiert (ohne die JRE zu installieren) . Stimmt das so ?

Leider habe ich es nicht hinbekommen.

Falls das stimmt wäre es sehr nett wenn mir das jemand mal erklärt was man da alles kopieren muss und natürlich auch mit welchen Versionen das geht (habe es auch leider mit 64 bzw 32 bit Betriebssystemen zu tuen)

Vielen Dank im Voraus


Volker.
 
H

httpdigest

Es gibt hierfür mehrere Möglichkeiten:
- jlink (falls du Java 9 oder neuer verwendest und deine Anwendung sowie alle Abhängigkeiten Jigsaw Module sind)
- libGDX/packr
- Launch4j (wenn du Windows stand-alone executables bauen möchtest)
- javapackager (Teil des Oracle JDKs)

Ich würde vielleicht erstmal mit Launch4j anfangen, da es eine schöne GUI bereitstellt und aber auch in Maven und Ant Builds eingebunden werden kann.
 
T

thecain

jre einfach kopieren sollte reichen. Java muss dann einfach mit dem ganzen Pfad angesprochen werden oder manuell dem PATH hinzugefügt werden.

Launch4j ist da nicht nötig
 
V

volkerk

Hallo,

Vielen Dank für die Antworten , leider hatte ich am WochenEnde sehr wenig zeit um zu Antworten.

Habe jetzt Folgendes gemacht :
Launch4J installiert , EXE erstellt , -> lief bei meinem Rechner (da ist aber auch JAVA installiert) problemlos.
Aber, leider bekomme ich an einem Rechner ohne JAVA (bzw mit alter JRE) die gleiche FehlerMeldung "MainClass nicht gefunden"

Wenn ich die JRE kopiere ist es genauso.

Als IDE habe ich Eclypse , kann es sein dass mir Eclypse da etwas abnimmt was ich nun aber doch im Java-Code eintragen muss ? Muss ich da im JAVA code noch etwas angeben ? Den PATH habe ich zum Beispiel noch nie gebraucht ?

Das sind denke ich bestimmt Anfänger fragen (aber das trifft ja auf mich zu)

Viele Grüße


Volker.
 
T

Tobias-nrw

Dann halt das Wichtigste in kurzform: Java ist abwärtskompatibel, das heißt wenn Du es zum Bleistift mit Java 8 compilierst kannst Du es auf dem Zielrechner/Zielsystem mit dem vorher installiertem JRE 8, 9 oder 10 starten.
Mehr brauchst nicht zu wissen. :)
 
T

thecain

überhaupt nichts mit der Frage zu tun, aber ok...

@TE beim starten -cp . noch angeben, dann sollte es gehen (Wenn du im Verzeichnis bist, in dem dein Programm befindet
 
T

thecain

Lies dir die Frage nochmal genau durch. Auf dem Zielrechner ist noch keine Java installiert...

Auf die Frage wer wieviel Ahnung hat lässt sich hier im Forum mit dir wohl niemand mehr ein...
 
V

volkerk

Hallo,

Vielen Dank Euch beiden.

Aber nun um deas Thema zu beenden , muss ich nun doch nochmals die Möglichkeiten aufzeigen (so wie ich es verstanden habe, damit ich am WE noch etwas zum goooogeln habe)

Also:

1. Ich kann auf meinem Rechner das älteste JaVA installieren und somit erreichen dass auf dem Zielrechner ein neueres ist . Ich denke für mich muss es nicht das neuste JAVA sein aber leider habe ich auch ab und zu gar kein JAVA installiert.

2. Das erstellen einer EXE mit diesem LAUNCH4J da stellt sich mir die Frage ob ich beim erstellen nicht auch diesen Parameter CP (denke ClassPath) setzen kann, denn später kann ich weil ich ja eine EXE habe das nicht mehr machen.

3. Das ist das was ich ja am Anfang gefragt habe : Kann ich die JRE nicht ohne installieren der JAR Datei beifügen ? wo kopiere ich dann was hin ?


Ich würde es am liebsten mit der EXE machen (wenn ich es hinbekomme , gibt es da einen Link zu einer Anleitung?)
Da ich das Programm auf einem USB stick lassen wollte wäre natürlich 3 auch OK
1 wäre natürlich das einfachste aber wie gesagt wenn JAVA nicht installiert ist.

Könnt Ihr mir vielleicht zu den Punkten 2,3 noch etwas sagen , bin für jeden Tip sehr dankbar.

Viele Grüße

Volker.
 
V

volkerk

Hallo,

leider bin ich noch zu keinem Ergebnioss gekommen.

Kann mir nicht jemand mal erklären warum ich bei der EXE die ich über Launch4J erstellt habe auch die Meldung "MaiClass nicht gefunden" kommt, was muss ich da einstellen? muss ich da im JAVA-Code etwas angeben?

Wenn ich die Lösung mit dem kopieren der JRE angehen will wo stelle ich die dann hin? kann ich das alles JRE und JAR zusammen auf einem USB Stick haben.

Binn für jede Hilfe dankbar , Ihr wisst das doch bestimmt alle.


Viele Grüße

Volker.
 
mihe7

mihe7

Ich gehe davon aus, dass
  1. die JAR-Datei myapp.jar heißt,
  2. die main-Methode in Klasse de.myapp.Main deklariert ist
  3. U der Laufwerksbuchstab für Deinen USB-Stick ist und
  4. Dein JRE unter C:\Program Files\java\jre1.8.0_171 installiert ist
Du kopierst zuerst einmal die JAR-Datei auf Deinen Stick, danach hast Du eine Datei U:\myapp.jar. Dann kopierst Du den jre-Ordner von Deinem Rechner auf den Stick, danach gibt es den Ordner U:\jre1.8.0_171. Jetzt erstellst Du die Datei U:\myapp.bat mit folgendem Inhalt
Code:
@echo off
%~dp0\jre1.8.0_171\bin\javaw.exe -cp %~dp0\myapp.jar de.myapp.Main
Ungetestet, sollte aber funktionieren.

EDIT: gestartet wird die Anwendung natürlich mit einem Doppelklick auf myapp.bat
 
V

volkerk

Hallo,

Vielen Dank, werde ich heute Abend (allerdings sehr spät) probieren und morgen antworten.

Viele Grüße Volker.
 
V

volkerk

Hallo,

dank der Hilfe habe ich nun einen Quantensprung (jedenfalls für mich) geschafft: Es kommt eine andere Fehlermeldung. Ich denke aber die ist erklär und lösbar.

Beim starten der Batch-Datei erkennt er dass ich nun eine 64bit JRE habe und die nicht zu dem 32bit Betriebssystem passt.

Als JRE habe ich 1.8.0.151 werde da nun mal nach 32bit ausschau halten und dann am montag nochmals probieren.

Ein schönes Wochenende an alle.

Gruss Volker.
 
mihe7

mihe7

Das ist halt der Unterschied zu einer Installer-Lösung, die das passende JRE installiert :)
 
V

volkerk

Hallo,

so jetzt habe ich fast das ganze Wochenende gesucht und leider keine 32bit Version gefunden (welche bei denen mit 64bit dabeisteht gibt es genug).

Nun müsste ich (danke für den Hinweis mit der installer Lösung) auf einem 32 bit Rechner JAVA installieren und dann die JRE nehmen.

Noch eine ganz unwissende Frage: Bei der JRE steht 1.8.0.151 (oder so ähnlich) dabei woher weiss ich denn nun welche JAVA version das ist , denn auf den DownloadSeiten steht immer nur 8,9,10,SE,ME usw.

vielleicht ist das relativ einfach zu erklären ?


Vielen dank


Gruß

Volker.
 
mihe7

mihe7

so jetzt habe ich fast das ganze Wochenende gesucht und leider keine 32bit Version gefunden
??? Google: jre 8 32 bit - erstes Ergebnis führt zur Downloadseite von Oracle, dort nimmt man "Windows x86 Offline" (jre-8u171-windows-i586.exe)

Die Versionsnummern sind bei Java eine Wissenschaft für sich :)

Java 8 = 1.8.0_x, wobei x die Updatenummer kennzeichnet. D. h. die Java Runtime Environment 8 Update 171 hat intern die Versionsnummer 1.8.0_171

Ab Java 9 gilt dieses Schema nicht mehr. Das JRE dürfte es eigentlich nur als SE geben.

SE steht für Standard Edition.
ME ist Micro-Edition (Handy)
EE ist Enterprise-Edition

Damit sind verschiedene APIs gemeint. SE sind die Standard-APIs, EE die Enterprise APIs usw.
 
V

volkerk

Hallo,

Danke nochmals.

Genau das "??? Google: jre 8 32 bit" wusste ich nicht ich habe nach "1.8.0..... 32 bit" gegoogelt.

Den Download für "jre-8u171-windows-i586.exe" habe ich dann auch irgendwann gesehen brachte das aber nicht mit 1.8.0.... in verbindung.

Durch die installation dachte ich findet JAVA die richtige JRE umgebung.


So werde das jetzt ausprobieren (wahrscheinlich erst am Wochenende)


Vielen Dank nochmals.


Volker.
 
T

Tobias-nrw

Ein Java 8 Programm beißt sich nur bei extrem hohen Ressourcen(anforderungen) mit einem 32bit JRE 8.
Das ist mal wieder völliger Quatsch der hier geschrieben wird.
Link für nicht so versierte: https://java.com/de/download/
Der wählt direkt den richtigen Installer.

@volkerk Ist Java echt die richtige Programmiersprache für dich, wenn du noch nichtmal weißt wie man es starten kann? (Und scheinbar blind irgendwelchen exe Bundles vertraust?)
 
V

volkerk

Hallo,

Warum soll ich wissen wie man ein JAVA Programm startet?

Entweder habe ich es bis bis jetzt in der IDE (Eclypse) gestartet oder ich habe mir eine JAR datei erzeugt , welche dann sogar auf anderen Rechnern durch einfaches anKlicken lief (sofern die gleiche JRE installiert war)

Um dann mal ganz bei Deinen Worten "Mehr musst du nicht wissen" zu bleiben, hat mich das dann wirklich nicht interessiert.

Aber warum soll ich denn dann nun , nur weil ein kleines Problem auftritt das mit JAVA sein lassen ? Und das aufrufen mit diesen Parametern hat für mein Empfinden auch nicht so viele mit der Sprache zu tuen.

Was meinst Du denn mit "irgendwelchen Bundels" genau den Link den Du postest da steht doch die JRE zum download? Und darum ging es ja.

Vielen Dank für die bisherige Hilfe kann es allerdings erst wieder am Wochenende ausprobieren.

Gruß Volker.
 
T

Tobias-nrw

Ihr habt alle nicht genau gelesen.
@mihe7 Ich meinte natürlich dich nicht.
@volkerk Von gleiche hat niemand gesprochen. Leseverständnis wäre schön.
Noch welche Fragen offen?
 
mihe7

mihe7

Um hier mal etwas Licht ins Dunkel zu bringen: salopp formuliert spielt es keine Rolle, welches JRE auf dem Zielsystem vorhanden ist, so lange es mindestens dem Stand des JDKs entspricht, mit dem das Programm übersetzt wurde.

Ich schreibe "Stand", weil die Versionsnummern von Java ... das hatten wir ja schon. Im Klartext: ein mit JDK 1.1 übersetztes Programm funktioniert auch mit einem 1.2er, 1.3er, ..., 1.8er JRE, ein mit einem 64 Bit JDK übersetztes Java-Programm funktioniert auch mit einem 32-Bit JRE.
 
M

mrBrown

Ich schreibe "Stand", weil die Versionsnummern von Java ... das hatten wir ja schon. Im Klartext: ein mit JDK 1.1 übersetztes Programm funktioniert auch mit einem 1.2er, 1.3er, ..., 1.8er JRE, ein mit einem 64 Bit JDK übersetztes Java-Programm funktioniert auch mit einem 32-Bit JRE.
Wobei das ab 9 komplizierter wird und nicht mehr immer klappt ;)
 
V

volkerk

Hallo,

aber genau da liegt ja mein Problem : auf dem Zielrecher ist ein altes oder kein JAVA.

Die Vorgehensweise mit der JRE auf dem USB stick die Funktioniert nur bei 64bit rechnern weil es die JRE von meinem Rechner (64bit) ist.

Wie komme ich nun an eine 32bit 1,8,,,, JRE . Ich kann auf dem 32bit Rechner nichts installieren. Muss ich nun wirklich auf meinem Rechner ein 32bit OS installieren dann JAVA installiern um an die JRE zu kommen ?

Kann ich JAVA auch ohne Internet installieren, weil wenn ich dann so eine ISO Datei auf dem Stick hätte dann kann ich die auch auf dem 32bit Rechner installieren und dann hätte ich ja die JRE.

Viele Grüße

Volker.
 
M

mrBrown

Wurde der entsprechende Link nicht schon genannt?
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Dort gibt es auch eine 32bit-Windows-Version, die nicht installiert, sondern nur entpackt werden muss (wenn ich mich nicht grad gewaltig irre...)

Die einfach auf den Stick legen und das Java-Programm damit starten, die entsprechende bat-Datei wurde weiter oben schon mal gezeigt.
Mit etwas Erweiterung wählt die dann auch das passende JRE fürs System aus.
 
V

volkerk

Hallo,

Sorry ,
ja da hast Du recht.

und ich habe auch noch darauf geantwortet ....

Das lag wahrscheinlich daran , dass als ich das Probiert habe ich es auf meinem Rechner ausgeführt habe und dann wenn ich das nun richtig verstanden habe ein 64bit Version erstellt wurde.

Dann probiere ich es die nächste Woche (früher geht es nicht) noch mals.

Vielen Dank Euch allen

Volker
 
V

volkerk

Hallo,

soeben ist muir wieder eingefallen was bei der ...i586...exe schiefgelaufen ist:

die Anleitung die mir mihe7 freundlicherweise gepostet hat beinhaltete ja ein PfadAngabe zu der javaw.exe.

Nun habe ich aber eine exe .

Entschuldigt meine unwissende Frage , aber , wie schreibe ich das denn nun ?


Viele Grüße

Volker.
 
M

mrBrown

Du brauchst nicht die exe-Version, sondern die Version zum entpacken: jre-8u171-windows-i586.tar.gz

Die entpackst du auf den USB-Stick und hast dann ganz normal eine javaw.exe
 
mihe7

mihe7

Oops, sorry, ja ich hatte Dir die .exe genannt. @mrBrown hat natürlich recht: die gepackte Version nehmen und auf den Stick entpacken. Vorsorglich: falls Du ein Problem mit dem Entpacken von .tar.gz unter Windows haben solltest, nimm z. B. 7zip, https://www.7-zip.org
 
V

volkerk

Hallo,

leider hatte ich die letzte Woche keine Zeit zum ausprobieren und zum antworten , entschuldigung.

Es klappt immer noch nicht (ich überlege wirlich ob JAVA für mich geeignet ist).

Ich habe nun einen JRE Ordner auf meinem USB Stick , die angepasste BAT und die JAR Datei.

Vorher ist die fehlermeldung (32 bit 64 bit Version gekommen ) Nun kommt leider gar nichts . Das DOS Eingabe fenster kommt aber vom JAVA Programm ist nichts zu sehen . Mit einem 64bit Rechner und der anderen JRE geht es.

Muss ich im JAVA Code noch irgend etwas angeben ? Aber mittlerweile ist der Code soweit abgespeckt dass eigentlich nur noch ein frame mit einem label gezeigt wird.

Bekomme ich von JAVAW irgendwelche FehlerLogs ?

Viele Grüße

Volker (Ratlos)
 
mihe7

mihe7

Hallo Volker Ratlos :)

Wenn Du Konsolenausgabe willst, nimm java statt javaw. Du kannst Dir auch in der Batch-Datei Dinge ausgeben lassen (echo ist Dein Freund) und/oder auf Eingabe des Nutzers warten ("pause").

ich überlege wirlich ob JAVA für mich geeignet ist
Mit Java hat das vermutlich nur am Rande was zu tun. Alles, worum es geht, ist ein Programm (das in dem Fall halt zufällig Java ist), das sich auf einem USB-Stick befindet, unter Angabe von ein paar Parametern auszuführen.
 
V

volkerk

Hallo,

Echo und Pause hatte ich schon eingebaut

Der Tip mit JAVA statt JAVAW war sehr gut, nun kommt eine Fehlermeldung.

Leider findet er wieder die "HauptKlasse" nicht.

Jetzt muss ich aber am Wochenende erst mal schauen ob ich mich da nicht wirklich verschrieben habe.

Prinzipiell kann ich doch das JAR File anders benennen wie das JAVA Programm und demzufolge auch wie die HauptKlasse im JAVA Programm ?

Vielen Dank vorers bis auf bald

Volker
 
M

mrBrown

Prinzipiell kann ich doch das JAR File anders benennen wie das JAVA Programm und demzufolge auch wie die HauptKlasse im JAVA Programm ?
Was meinst du mit "JAVA Programm"?

Name der Jar und Name der Hauptklasse haben nichts miteinander zu tun. Im Manifest muss nur die passende stehen (oder wenn du kein manifest hast: beim starten muss die passende Klasse angegeben werden)
 
mihe7

mihe7

Jetzt muss ich aber am Wochenende erst mal schauen ob ich mich da nicht wirklich verschrieben habe.
Starte Dein Programm doch einfach mal auf Deinem Rechner und nicht vom Stick von der Konsole aus:

java -jar xyz.jar

bzw.

java -cp xyz.jar meine.Hauptklasse

Wenn das funktioniert, hast Du den prinzipiell benötigten Befehl. Den packst Du - angepasst um die Pfade natürlich - in die Batch-Datei auf den Stick. Dann rufst Du - wieder auf Deinem Rechner - die Batch-Datei vom Stick auf (achtest dabei darauf, dass das 32-Bit-JRE vom Stick genommen wird). Wenn das geht, sollte es auf dem anderen Rechner auch funktionieren.
 
V

volkerk

Hallo,

es geht:

Mein Fehler war die Groß-/KleinScreibung bei der -cp angabe.

-jar geht mit der richtigen JRE jetzt auch.

Nun habe ich noch 3 ganz kleine Fragen.

1. Bekomme ich das CMD Fenster unsichtbar ?

2. Auf meinem USB stick habe ich ja nun eine 32bit und eine 64bit JRE ob ich nun die eine oder andere nehme entscheide ich ja in der .bat datei , ist der Befehl VER dafür geeignet . Bei meinem Recher hier kommt nur "Windows XP" ohne 32 (es gibt doch auch 64bit XP) ?

3. Mit einem LINUX Rechner geht das ja dann mit der richtigen JRE (glaube ich gesehen zu haben) auch so ähnlich?

Vielen Dank.

Gruß Volker.
 
mihe7

mihe7

zu 1. das geht über Umwege. Verschwindet das Konsolenfenster denn nicht gleich wieder, wenn Du javaw statt java verwendest?

zu 2. du brauchst keine zwei JREs auf dem Stick: die 32-Bit JRE läuft auf 64-Bit-Systemen genauso.

zu 3. ja, hier erstellst du ein shell-Skript statt einer .bat. Allerdings: unter Linux hängt die Ausführbarkeit von Programmen/Skripten nicht von der Dateiendung sondern von den Dateiattributen ab. Ggf. wird die Datei also nicht einfach so ausführbar sein. Und natürlich brauchst Du dann auch ein Linux-JRE auf dem Stick.
 
V

volkerk

Hallo,

1.JAVAW brachte das Fenster nicht zum verschwinden . ich habe START vergessen dann verschwindet es mit JAVAW

2.Das ist ja gut

3. Brauche ich erst in ca 3 Wochen

Vielen Dank nochmals für Eure Hilfe und Geduld.
Entschuldigung dass es durch meine GroßKlein schwäche so lange gedauert hat.


Gruß Volker.
 
Thema: 

JRE installieren oder nicht ?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben