.jar läuft local, aber nicht remote (SSH/Terminal)

setNewUser()

Mitglied
Hallo!
Dank der Tipps im Forum bin ich schon viel weitergekommen, vielen Dank!
Aber:
Ich kann meine .jar-Datei Hello.jar zwar local starten, nicht aber die identische Kopie auf dem remote server (... jdk ist eigentlich installiert ...)
Woran könnte das denn liegen?

Danke und LG!
Chris

Code:
// command: execute .jar

(base) My-MacBook-Pro:experiments magister$ java -jar Hello.jar


// .jar execution on local machine:

Hello world!
How are you?
fine                      // user input
Ah, so you're "fine".


// switching to remote server

(base) My-MacBook-Pro: experiments magister$ SSH root@85.xxx.xx.xx6
root@85.xxx.xx.xx6's password:
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0 x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage
Last login: Wed Feb 10 11:45:30 2021 from 80.140.124.21

This server is powered by Plesk.

Run the 'plesk login' command and log in by browsing either of the links received in the output.
Use the 'plesk' command to manage the server. Run 'plesk help' for more info.


// navigating to directory

root@h2923319:~# cd test_directory
root@h2923319:~/test_directory#


// showing data in the directory

root@h2923319:~/test_directory# ls -ltra
insgesamt 12
drwx------ 7 root root 4096 Feb  9 03:16 ..
-rw-r--r-- 1 root root    0 Feb  9 23:57 gradlew.bat
-rw-r--r-- 1 root root    0 Feb  9 23:57 gradleww.bat
drwxr-xr-x 2 root root 4096 Feb 10 11:45 .
-rw-r--r-- 1 root root 1102 Feb 10 11:45 Hello.jar


// trying to execute .jar on remote server ... failure!

root@h2923319:~/test_directory# java -jar Hello.jar
-bash: java: Befehl nicht gefunden
 
Dann ist das JDK nicht installiert oder nicht im Pfad. Wenn Du es via Paket Repository installiert hast, dann sollte es auch im Pfad sein.
 
Die Installation hat funktioniert (mit "sudo apt install default-jdk"). Offenbar ist die neu installierte Version aber zu alt.


Fehler: Beim Laden der Klasse Main ist ein LinkageError aufgetreten
java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime (class file version 58.0), this version of the Java Runtime only recognizes class file versions up to 55.0


Weißt du, wie ich die alte Version erst einmal wieder los werde? Im aktuellen Ordner, wo ich beim Installieren mich aufgehalten habe, ist sie nicht sichtbar.

Und wie kann ich eine neuere Version installieren?

Tausend Dank!
 
Allerbesten Dank dir! 🙂

Ah, das heißt, die .jar und Java selbst müssen im selben Ordner liegen? Alles klar!

Was bedeutet Paket Repository!
Nein, java muss nicht im gleichen Ordner liegen. Es muss nur im Pfad gefunden werden.

Paket Repository bezeichnet einfach die zentral bereitgestellten Pakete. Wenn Du ein apt install machst, dann lädt er ja automatisch ein Paket herunter und installiert es. Das kommt von einem Server und das, was er bereit stellt, nennt sich ein Repository (englisch für Lagerstätte) für Pakete.

Die oben genannten Pakete sollten aber zum einen das default-jdk Paket entfernen und dann das openjdk in Version 15 installieren.

(Du hast zwar wohl bisher JDK 14 im Einsatz (Version 58) aber mit JDK 15 kannst Du die auch ausführen. Du willst aber ggf. dein JDK lokal auch auf 15 anheben ...)
 
Vielen Dank für deine super Erklärungen!

@Nein, java muss nicht im gleichen Ordner liegen. Es muss nur im Pfad gefunden werden.

Wie stelle ich denn sicher, dass es gefunden wird? Ich hatte ja schon mal installiert, aber es wurde nicht gefunden ...
(Ich habe weiterhin keine Ahnung, wo java überhaupt hin installiert wird ^^)

Übrigens leider:
Code:
root@h2923319:~/test_directory# sudo apt install openjdk-15-jdk
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket openjdk-15-jdk kann nicht gefunden werden.

Bleibt mir dann nichts anderes übrig, als eine neue .jar zu kreieren, dies mal dann aber mit java 8 oder so ...?

Beste Grüße
Chris
 
Bin mir nicht sicher, Java 15 in Ubuntu 18.04.5 verfügbar ist 🤔
Ach, hat er ein altes Ubuntu 18.04? Da gibt es kein 15... Da kann er ja fast froh sein, ein 1.2 oder 1.4 zu bekommen 🙂

Ok, Witz beiseite:

openjdk-11-jdk wäre da die Version, die es gibt. Selbst 13 wird nicht für bionic gelistet in der Paketsuche ...

Also wäre dann ggf. ein Download von Adoptopenjdk eine Idee. Da ein 15er JDK für Linux herunter laden (vermutlich 64bit, zur not ein "uname -a" ausführen ...)

wget https://github.com/AdoptOpenJDK/ope...nJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz
könnte da ein Weg sein.

Dann kann man das tar.gz entpacken
tar xvzf OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz

Um dann das zu nutzen ... dazu das aber noch im Pfad angeben ....

Aber das geht jetzt relativ weit - Linux Administration Basics können wir wohl nicht alle erläutern ...
 
Azul bietet Zulu als Paket an.

Das könnte man herunterladen und mittels dpkg -i installieren ...

Anstatt selbst "per Hand" zu installieren wäre http://sdkman.io dabei die bessere Alternative 🙂 Das ist dann fast so bequem wie über den Paketmanager.
Das ist natürlich auch noch eine Alternative. Da sag ich mal: Kobra übernehmen Sie ...
(Aber denk daran: Wenn Du erwischt wirst, werde ich leugnen, davon Kenntnis zu haben!)
 

Zurück
Oben