#1 27.01.2019 10:53:28

jessie
Mitglied

Umgang mit verschiedenen Java-Versionen

Hi,

ich stehe vor folgender Herausforderung:
Ich habe die aktuelle Java-Version (11) und parallel Java-8 installiert. Als Standard habe ich Java-8 eingerichtet:

archlinux-java set java-8-openjdk/jre

Nun möchte ich jedoch ein anderes Programm auf der Konsole starten

java -jar meinProgramm.jar

und hierbei Java-11 nutzen.
Welchen Parameter benötige ich hierfür? (Also ohne jedesmal die Standard-Version zu ändern.)

Dank Euch!

Offline

#2 27.01.2019 11:22:28

niemand
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Die einfachste Variante: die gewünschte Javaversion direkt mit komplettem Pfad aufrufen.

Offline

#3 27.01.2019 11:23:32

blub
Gast

Re: Umgang mit verschiedenen Java-Versionen

Du könntest den absoluten Pfad zu deiner gewünschten Java-Executable verwenden. Also zumindest ist das die naheliegendste Variante, keine Ahnung, ob es noch einfachere Möglichkeiten mit Parametern oder so gibt.

#4 27.01.2019 11:36:50

GerBra
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Du könntest dir in deiner Shell einen Alias wie java11 für die java-11-openjdk anlegen und diesen dann nutzen.

Wenn du bei dir schaust:

$ which java
/usr/bin/java
$ ls -l $(which java)
lrwxrwxrwx 1 root root 37 22. Sep 2017  /usr/bin/java -> /usr/lib/jvm/default-runtime/bin/java

java als Befehl ist also nur ein Symlink nach /usr/lib/jvm/default-runtime/. Diese default-Verzeichnisse sind ebenfalls Symlinks auf die gewünschte Default-Java-Umgebung und wird von archlinux-java gesetzt/verwaltet.

$ ls -ld /usr/lib/jvm/default-runtime
lrwxrwxrwx 1 root root 14  8. Okt 2017  /usr/lib/jvm/default-runtime -> java-8-openjdk

Um nun auf andere Versionen zuzugreifen kannst du diese Versionen direkt aus deren Verzeihncis starten, also z.B.
(die Versionsausgabe habe ich etwas gekürzt)

$ java -version
openjdk version "1.8.0_202"
(Also die Default-version)

$ /usr/lib/jvm/java-8-openjdk/bin/java -version
openjdk version "1.8.0_202"

$ /usr/lib/jvm/java-11-openjdk/bin/java -version
openjdk version "11.0.2" 2018-10-16

Dein Befehl/Beispiel würde also lauten:

/usr/lib/jvm/java-11-openjdk/bin/java -jar meinProgramm.jar

Bequemer ist dann ein Alias wie java11. Um solche Aliasnamen nicht mit normalen Programmen zu verwechseln verwende ich gerne Namen wie _java11 oder setze meine Initialen vornweg gb_java11, dann weiß ich daß das von mir kommt.
Dann genügt ein _java11 um obiges bin/java aus dem java-11-openjdk zu starten.

//Hehe, viel zu spät da zu ausscheifned... ;-)

Beitrag geändert von GerBra (27.01.2019 11:40:46)

Offline

#5 27.01.2019 11:51:42

chepaz
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

GerBra schrieb:

//Hehe, viel zu spät da zu ausscheifned... ;-)

Dafür, wie gewohnt, qualitativ hochwertig wink

Offline

#6 27.01.2019 12:42:42

jessie
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Dein Befehl/Beispiel würde also lauten:
/usr/lib/jvm/java-11-openjdk/bin/java -jar meinProgramm.jar

Ja klasse, vielen Dank!

Offline

#7 01.02.2019 10:01:42

Icecube63
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Wenn ich das versuche bekomme ich bei jameica folgenden Fehler

$ /usr/lib/jvm/java-8-openjdk/bin/java -jar /opt/jameica/jameica.jar
kein Hauptmanifestattribut, in /opt/jameica/jameica.jar

Wo mache ich da eine Fehler?

Offline

#8 01.02.2019 15:32:46

chepaz
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Icecube63 schrieb:

Wo mache ich da eine Fehler?

OpenJDK ist der Fehler.

Edit:
Iirc hat Jameika und Hibiskus noch nie gut mit OpenJDK harmoniert. Einer der Gründe warum ich auch noch immer Oracle-Java installiert habe.

Beitrag geändert von chepaz (01.02.2019 15:35:39)

Offline

#9 01.02.2019 15:48:10

Icecube63
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

OpenJDK ist der Fehler.

Warum das? Wenn ich java-11-openjdk als Standard setze funktioniert jameica/hibiscus, nur das Mashup-Plugin nicht. Setze ich java-8-openjdk als Standard funktioniert auch das. Ich würde aber gerne nur jameica mit java-8-openjdk aufrufen.

Iirc hat Jameika und Hibiskus noch nie gut mit OpenJDK harmoniert. Einer der Gründe warum ich auch noch immer Oracle-Java installiert habe

Das habe ich auch gelesen, hat bei mir allerdings bisher problemlos funktioniert

Beitrag geändert von Icecube63 (01.02.2019 18:53:24)

Offline

#10 01.02.2019 18:56:29

chepaz
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Icecube63 schrieb:

Warum das?

Kann ich dir nicht sagen. Aber bei Software die in irgend einer Form Java benutzt erwarte ich schon lange nicht mehr das sie einfach so funktioniert. Plattformübergreifend mag Java sein - aber halt dann nur immer mit $versionFoo aus $revisionBar von Hersteller $Voodoo. Vernünftige Fehlermeldungen bekommt man bei Javaapplikationen auch zu 85% nie.

Ich verschwende damit keine Lebenszeit mehr wenn ich nicht muss smile Erlaubt ist was funktioniert - und in dem Fall halt Oracle (zumindest bei mir).

Offline

#11 01.02.2019 20:05:55

Gerry_Ghetto
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Java 11 hat nicht nur Neuerungen, sondern auch einige Dinge weniger, wie zum Beispiel Java EE und CORBA Module. Das JDK enthält ausserdem kein JavaFX mehr. Es ist also gut möglich, dass nicht mehr alle Jars einfach so funktionieren.

Ich kenne Jameica nicht, kann also auch nicht wirklich helfen, aber ein kurzer Blick ins .zip-Archiv hat mir gezeigt, dass du wahrscheinlich eher ein jameica-linux64.jar starten möchtest.

Offline

#12 07.02.2019 13:40:53

Icecube63
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Gerry_Ghetto schrieb:

Ich kenne Jameica nicht, kann also auch nicht wirklich helfen, aber ein kurzer Blick ins .zip-Archiv hat mir gezeigt, dass du wahrscheinlich eher ein jameica-linux64.jar starten möchtest.

Das ist ein guter Fingerzeig. Nun startet hibiscus, allerdings lässt sich der Benutzerordner im Dialogfenster nicht übernehmen, der Button ist grau und bleibt es auch, egal wie ich den vorgeschlagenen Ordner ändere.

Offline

#13 07.02.2019 20:21:03

chepaz
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

Icecube63 schrieb:

... Nun startet hibiscus, allerdings lässt sich der Benutzerordner im Dialogfenster nicht übernehmen, der Button ist grau und bleibt es auch, egal wie ich den vorgeschlagenen Ordner ändere.

Ist das bei beiden Javas so (openjdk, oracle)?

Offline

#14 11.02.2019 17:20:52

Icecube63
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

chepaz schrieb:
Icecube63 schrieb:

... Nun startet hibiscus, allerdings lässt sich der Benutzerordner im Dialogfenster nicht übernehmen, der Button ist grau und bleibt es auch, egal wie ich den vorgeschlagenen Ordner ändere.

Ist das bei beiden Javas so (openjdk, oracle)?

Ja. Ich habe jetzt jdk-11 installiert, beim starten mit

$ jameica

funktioniert wie bei openjdk 11 das Mashup-Plugin nicht. Wenn ich mit

/usr/lib/jvm/java-11-jdk/bin/java -jar /opt/jameica/jamei

starte soll der Nutzerordner ausserhalb des Programmordners angelegt weden, geht aber nicht da der Übernehmen-Button angegraut ist.

Offline

#15 11.02.2019 20:06:43

chepaz
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

In dem Startscript von Jameica ist ein "cd /op/jameica", das wird wohl benötigt. Ein

cd /opt/jameica && /usr/lib/jvm/java-11-jdk/bin/java -jar /opt/jameica/jameica-linux64.jar

hat dann keinen grauen Button mehr.

Offline

#16 11.02.2019 21:12:34

Icecube63
Mitglied

Re: Umgang mit verschiedenen Java-Versionen

So funktioniert es, danke!

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums