Parece que você está usando Debian ou Ubuntu.
Se você estiver em um sistema recente com systemd , basta criar systemd.unit , chamado /etc/systemd/system/java-test-app.unit
neste exemplo.
[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
Eu recomendo criar um usuário separado para o aplicativo (chamado myuser
neste exemplo), porque executar aplicativos como root geralmente não é uma boa ideia.
Eu também sugiro mover o aplicativo para fora da distribuição Java, já que o diretório /usr/lib
é normalmente mantido pelo sistema de empacotamento e não pelo usuário regular.
Depois de criar o arquivo da unidade, tente garantir que ele funcione.
systemctl daemon-reload
systemctl start java-test-app
Para fazer o aplicativo iniciar após a inicialização do sistema.
systemctl enable java-test-app
Você pode verificar a execução do aplicativo com
systemctl status java-test-app
Se você deseja executar o aplicativo como root, basta atualizar a linec apropriada no arquivo da unidade.