1

Мне было интересно, как я могу запустить команду javac и java для файла .java, который находится в /usr/lib/java/jdk1.8.0_121/Testapp.java при загрузке. Поэтому каждый раз, когда компьютер включается, мне нужно, чтобы файл Java был скомпилирован и затем запущен. любая помощь приветствуется.

1 ответ1

0

Кажется, вы используете 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 в файле модуля.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .