Java und Javac beim Start ausführen

372
Tyler

Ich habe mich gefragt, wie ich den Befehl javac und java in einer Java-Datei ausführen kann, die sich beim Booten in /usr/lib/java/jdk1.8.0_121/Testapp.java befindet. Jedes Mal, wenn der PC eingeschaltet ist, muss die Java-Datei kompiliert und dann ausgeführt werden. Jede Hilfe wird geschätzt.

1

1 Antwort auf die Frage

0
Věroš K.

Es scheint, Sie betreiben Debian oder Ubuntu.

Wenn Sie ein aktuelles System mit systemd haben, erstellen Sie einfach die Datei systemd.unit, die /etc/systemd/system/java-test-app.unitin diesem Beispiel aufgerufen wird .

[Unit] Description = Java test app After = network.target Wants = network.target  [Service] Type = oneshot User = myuser Workdir = /home/myuser ExecStartPre = javac Testapp.java ExecStart = java Testapp  [Install] WantedBy = multi-user.target 

Ich empfehle, einen separaten Benutzer für die App zu erstellen ( myuserin diesem Beispiel aufgerufen ), da das Ausführen von Anwendungen als Root normalerweise keine gute Idee ist.

Ich würde auch vorschlagen, die Anwendung aus der Java-Distribution zu entfernen, da das Verzeichnis /usr/libnormalerweise vom Paketsystem und nicht vom normalen Benutzer verwaltet wird.

Versuchen Sie es nach dem Erstellen der Einheitendatei, um sicherzustellen, dass sie funktioniert.

systemctl daemon-reload systemctl start java-test-app 

Um die Anwendung nach dem Systemstart starten zu lassen.

systemctl enable java-test-app 

Sie können die App-Ausführung mit überprüfen

systemctl status java-test-app 

Wenn Sie die App als Root ausführen möchten, aktualisieren Sie einfach die entsprechende Zeile in der Einheitendatei.