ubuntuusers.de

Java in Terminal

Status: Ungelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

kschras

Anmeldungsdatum:
1. Juni 2018

Beiträge: Zähle...

Hallo,

ich habe folgendes Problem. Immer wenn ich

java -jar yatta-eclipse-launcher-linux-64.jar

im Terminal eingebe erscheint die folgende Fehlermeldung: > Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen

Kann mir jemand sagen, woran das liegt? OpenJDK ist installiert.

Vielen Dank.

Seebär

Avatar von Seebär

Anmeldungsdatum:
2. Mai 2009

Beiträge: 833

Was gibt denn

1
java -version

an? Bis incl. Java8 sollte das OOTB gehen. Ab Java9 (aktuell ist wohl Java10) wird es entweder das "grandiose" neue Modulsystem (exakte Bezeichnung fällt mir grade nicht ein) ein, dass es sein könnte, oder war da nicht sogar was, dass JavaFX auf dem Rückzug ist und entfernt wird (analog JWS)?

kschras

(Themenstarter)

Anmeldungsdatum:
1. Juni 2018

Beiträge: 6

java -version

Gibt

1
2
3
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

aus.

Schmetterhand

Anmeldungsdatum:
16. Mai 2015

Beiträge: 126

In den offiziellen Paketquellen ist nur OpenJFX8 dabei. Also müßtest Du wohl das Oracle JRE (oder JDK, falls Du Entwickler bist) von hier herunterladen, entpacken und z.B. nach "/opt/" verschieben.

Seebär schrieb:

Ab Java9 (aktuell ist wohl Java10) wird es entweder das "grandiose" neue Modulsystem (exakte Bezeichnung fällt mir grade nicht ein) ein

"Jigsaw" heißt das Ding. Kapiere bis jetzt nicht, was die großen Vorteile davon sein sollen. Bisher sah ich nur alte Java-Programme, die dadurch inkompatibel wurden.

dass es sein könnte, oder war da nicht sogar was, dass JavaFX auf dem Rückzug ist und entfernt wird (analog JWS)?

Ja, es soll glaub ab Java 11 nicht mehr Teil vom offiziellen JDK sein, dafür ein komplett separates Opensource-Projekt (OpenJFX), was mehr Beiträge zum Projekt ermöglichen soll. Das stimmt zwar zum einen, zum anderen aber will sich Oracle wohl einfach nicht mehr die Mühe machen, professionellen Support für JavaFX zu bieten. Die haben ziemlich schnell das Interesse verloren, als sie gesehen haben, daß JavaFX nach seiner Veröffentlichung nicht auf eine derart große Resonanz stieß.

Gruß

kschras

(Themenstarter)

Anmeldungsdatum:
1. Juni 2018

Beiträge: 6

Mhh,

ich habe die Java SE 10.0.2 JDK heruntergeladen entpackt und per Terminal nach /opt/ gezogen. Die Fehlermeldung taucht nach wie vor auf. Ich habe keine Ahnung was ich falsch mache. Dir JRE habe ich noch nicht versucht. Kost ja nichts 😀

Gruß

Schmetterhand

Anmeldungsdatum:
16. Mai 2015

Beiträge: 126

Das Problem ist, daß das alte OpenJFX noch verwendet wird. Um Dein JDK in /opt/ zu verwenden, müßtest Du

/opt/jdk/bin/java -jar mein.jar

aufrufen (Pfad entsprechend anpassen).

Um aber eine saubere Lösung zu haben, solltest Du zuerst openjdk* deinstallieren:

sudo apt remove openjdk*

Um Dein Oracle Java systemweit nutzen zu können, mußt Du noch Deinen "/opt/jdk/bin"-Ordner in die PATH-Variable eintragen, damit "java" oder "javac" auch als Befehl gefunden wird. Einfach in /etc/profile unten eine neue Zeile anfügen:

PATH=/opt/jdk/bin:"$PATH"

(Pfad wiederum entsprechend anpassen)

Dann abmelden (oder neustarten) und

java -version

sollte so etwas wie

java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

ergeben.

Gruß

kschras

(Themenstarter)

Anmeldungsdatum:
1. Juni 2018

Beiträge: 6

Dankeschön für die Hilfe. Jetzt kann ich alle .jar-Dateien ausführen. Außer die, die ich brauche. Das Fenster öffnet sich zwar bleibt aber grau. Ich gehe mal davon aus, dass das nicht mit Java zusammenhängt. Oder doch?

Seebär

Avatar von Seebär

Anmeldungsdatum:
2. Mai 2009

Beiträge: 833

Doch natürlich wird das zusammenhängen.

  • kläre beim Hersteller, welches Java-Version denn überhaupt unterstützt wird

  • installiere und verwende diese.

Ursachen können u.a. sein:

  • ab Java9 muss u.U. anders beim Start konfiguriert werden, da im Default eben weniger classes verwendet werden als sonst

  • andere Kompatibilitätsprobleme

.jar-Dateien ausführen

...ist begrifflich etwas ungenau: man führt keine jar-Datei aus, eine java-Anwendung besteht ggf. aus 1..n jar-Files, die in einer JVM laufen. Stell dir jar-FiLes einfach als ein Sack voller Laufzeit-Bibiliotheken vor.

Loggt die Anwendung denn nichts weg? Ggf. macht sie das ja und liefert sinnvolle Info.

Schmetterhand

Anmeldungsdatum:
16. Mai 2015

Beiträge: 126

Naja, jedes normale Java-Programm gibt Fehlermeldungen in der Konsole aus. Hast Du dieses Programm in der Konsole gestartet? Wenn ja, was sind die Ausgaben?

Falls das fragliche Programm dieses hier ist, so stehen dort zwei wichtige Informationen:

Note: The Linux version of the Launcher is not as smooth and stable as we want it to be - yet! This is why we are shipping it as alpha. Don’t worry, we are working on it!

und

Tip: We use Oracle Java as a standard. If you are running the Launcher using OpenJDK, please install JavaFX for OpenJDK. You can download it from https://www.java.com/en/download/help/linux_x64_install.xml.

Das wäre schon die Lösung für das erste Problem gewesen.

Auf der Download-Seite steht zusätzlich noch

Make sure that you have installed Java 1.8 with JavaFX.

Also mußt Du das JDK 8 von Oracle herunterladen und die gleiche Prozedur wie oben anwenden, nur PATH nicht setzen, es sei denn, Du willst systemweit Java 8 haben.

Das Programm kannst Du dann z.B. so ausführen:

/opt/jdk8/bin/java -jar yatta-eclipse-launcher-linux-64.jar

Die großen Änderungen zwischen Java 8 und Java 10 könnten evtl. der Auslöser für dieses Problem (graues Fenster) sein.

Gruß

Seebär

Avatar von Seebär

Anmeldungsdatum:
2. Mai 2009

Beiträge: 833

Da kann sich der TE für deine tolle Vorarbeit bedanken, könnte man ja selbst recherchieren...

Was das angeht... Schmetterhand schrieb:

Naja, jedes normale Java-Programm gibt Fehlermeldungen in der Konsole aus.

..stimmt schlicht nicht (mal abgesehen davon was ein "normale Java-Programm" überhaupt ist.). Logging macht man anders, aber nicht "einfach raus auf die Konsole". Will ich aber nicht weiter vertiefen, ist hier nicht das Thema, was der TE hat.

Antworten |