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

kneitzel

Gast
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()

Mitglied
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!
 
K

kneitzel

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

setNewUser()

Mitglied
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
 
K

kneitzel

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

kneitzel

Gast
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!)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
M Socket Herausfinden ob server auf port läuft Netzwerkprogrammierung 8
K Server Client läuft in Windows allerdings nicht in Linux Netzwerkprogrammierung 9
M Thread läuft nicht weiter Netzwerkprogrammierung 2
X axis stand alone-Server läuft nicht Netzwerkprogrammierung 2
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
K RMI Server läuft auf unterschiedlichen IP Addressen ! Netzwerkprogrammierung 3
M RMI läuft über IPv6? Netzwerkprogrammierung 3
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
V TCP Client funktioniert auf Emulator aber nicht auf Smartphone Netzwerkprogrammierung 5
N Socket geht auf Windows, aber auf Mac nicht ? Netzwerkprogrammierung 3
J method = PUT, aber ausgeführt wird doGet...? Netzwerkprogrammierung 4
J RMI Einfaches Hello World mit Java6 + RMI, aber ClassNotFoundException Netzwerkprogrammierung 6
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
E java.lang.NullPointerException aber nur wenns im Thread läuf Netzwerkprogrammierung 4
A [URLConnection] Bilder hochladen - aber anders! Netzwerkprogrammierung 4
H Server soll Daten schicken, aber wie? Netzwerkprogrammierung 47
M HTTP response code: 401 ; ?aber im browser ist es abrufbar? Netzwerkprogrammierung 5
H Buffergröße anpassen, aber wie? Netzwerkprogrammierung 19
K öffnen des socket schlägt fehl -> ABER: keine exception . Netzwerkprogrammierung 2
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
M ois nicht null, aber ois.getObject liefer exception Netzwerkprogrammierung 3
M Vom Server per Socket Empfangen, aber wieviel Bytes? Netzwerkprogrammierung 11
L JavaMail: Mail in Posteingang aber nicht in Versendet Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben