# Probleme bei Java-Installation auf Server (Linux/Shell/Terminal)



## setNewUser() (8. Feb 2021)

Hallo zusammen,

ich wollte ein bisschen mit einem V/Linux-Server herumspielen (gemietet) und darauf ein einfaches Programm laufen lassen.
Allerdings scheitert es schon an der Installation der Java-Runtime-Umgebung.

Ich (linux-unerfahren, Mac-Nutzer, aber auch relativ Terminal-unkundig) habe aufgrund von Internet-Recherchen folgende Dinge versucht - ohne jeweils gewünschte Resultate:

(Ich bin auch sehr offen für Tipps, womit ich mich generell erst einmal beschäftigen sollte, bevor ich hier großartig mit Servern experimentiere ... !!)


```
java -version
```
=>

```
-bash: java: Befehl nicht gefunden
```



```
apt-get install openj
```
=>

```
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket openj kann nicht gefunden werden.
```


```
apt install openjdk14-jre
```
=>

```
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket openjdk14-jre kann nicht gefunden werden.
```

Bin für jeden Tipp dankbar!

LG Chris


----------



## mihe7 (8. Feb 2021)

Erstmal Paketlisten aktualisieren:

```
apt-get update
```
Dann suchen

```
apt-cache search openjdk
# oder
apt-cache search jdk
```


----------



## setNewUser() (8. Feb 2021)

Perfekt! Danke dir, mihe7! 

Darf ich die Gelegenheit am Schopf packen und dich noch fragen, in welcher Form das Java-Programm auf den Server muss? Als jar oder auch als ganz normales Projekt?

... und wie man das dann vom eigenen PC auf den Server lädt und dann startet? ;-)

Ich denke, dann wüsste ich für den Moment alles!

Tausend Dank noch mal!


----------



## mihe7 (8. Feb 2021)

"Muss"... sagen wir besser "soll". Grundsätzlich solltest Du ein Jar verwenden, das Projekt muss auf jeden Fall nicht auf den Server (theoretisch könntest Du die .class-Files einzeln rüberkopieren, dabei musst Du aber die Verzeichnisstruktur (Packages) beachten, deshalb ist ein Jar vorzuziehen).

Wie Du das ausführen musst, hängt von ein paar Dingen ab. In der Regel 

```
java -cp <per-Doppelpunkt-separierte-Liste-der-benötiten-Jar-Files> <full qualified name der Main-Class>
```

Wenn Du ein ausführbares Jar erstellt hast, solle

```
java -jar <jar-file>
```
reichen. Hier sollten dann etwaig benötigte Bibliotheken im Manifest angegeben sein (macht in der Regel die IDE) und in dem dort bestimmten Verzeichnis liegen. 

Beispiel: Du hast ein Jar meinprojekt.jar und eine Main-Class org.javaforum.MeinServer.

```
java -cp meinprojekt.jar org.javaforum.MeinServer
```
Wenn das Jar ausführbar ist, genügt:

```
java -jar meinprojekt.jar
```


----------



## setNewUser() (8. Feb 2021)

Vielen Dank dir noch mal!


----------



## M.L. (9. Feb 2021)

Weiterhin: ein "Server" ist erstmal ein Programm, welches auf Eingaben/Befehle/... von aussen wartet. Man könnte VirtualBox für OS X verwenden, dort ein Linux-Image (wobei "Debian" eher für Administratoren geeignet ist, "Kali-Linux" für Sicherheitstests) laufen lassen und damit experimentieren (z.B. nativ Java installieren und mit Eclipse programmieren)


----------



## setNewUser() (9. Feb 2021)

Vielen Dank, M.L.!


----------

