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



## setNewUser() (10. Feb 2021)

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


```
// 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
```


----------



## kneitzel (10. Feb 2021)

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.


----------



## setNewUser() (10. Feb 2021)

Allerbesten Dank dir! 

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

Was bedeutet Paket Repository!


----------



## setNewUser() (10. Feb 2021)

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!


----------



## kneitzel (10. Feb 2021)

sudo apt purge default-jdk
sudo apt install openjdk-15-jdk


----------



## kneitzel (10. Feb 2021)

setNewUser() hat gesagt.:


> 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 ...)


----------



## mrBrown (10. Feb 2021)

kneitzel hat gesagt.:


> sudo apt install openjdk-15-jdk


Bin mir nicht sicher, Java 15 in Ubuntu 18.04.5 verfügbar ist 🤔


----------



## setNewUser() (10. Feb 2021)

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:

```
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


----------



## kneitzel (10. Feb 2021)

mrBrown hat gesagt.:


> 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 ...


----------



## mrBrown (10. Feb 2021)

kneitzel hat gesagt.:


> 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 ...)


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.


----------



## kneitzel (10. Feb 2021)

Azul bietet Zulu als Paket an.








						Downloads
					

Download Java Builds of OpenJDK 8, 11, 13, 15, 17, 19. Azul Zulu Builds of OpenJDK runs on Linux, Windows, macOS & Solaris on X86, Arm, SPARC & PPC




					www.azul.com
				




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



mrBrown hat gesagt.:


> 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!)


----------

