Кажется, вы используете Debian или Ubuntu.
Если вы используете новейшую систему с systemd, просто создайте файл systemd.unit, который вызывается/etc/systemd/system/java-test-app.unit
в этом примере.
[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
Я рекомендую создать отдельного пользователя для приложения (называемого myuser
в этом примере), потому что запуск приложений от имени root обычно не очень хорошая идея.
Я также предложил бы вывести приложение из дистрибутива Java, поскольку каталог /usr/lib
обычно поддерживается системой упаковки, а не обычным пользователем.
После создания файла модуля, попробуйте, чтобы убедиться, что он работает.
systemctl daemon-reload systemctl start java-test-app
Чтобы приложение запускалось после загрузки системы.
systemctl enable java-test-app
Вы можете проверить выполнение приложения с помощью
systemctl status java-test-app
Если вы хотите запустить приложение от имени пользователя root, просто обновите соответствующий linec в файле модуля.