nohup apenas torna o programa imune a SIGHUP e SIGQUIT signal. O shell moderno talvez envie outros sinais quando você sair da sua sessão, portanto, não há garantia de que seu programa não seja executado, mesmo sendo executado em nohup .
A melhor solução é usar tmux ou screen ou, se você usar bash , pode tentar:
$ java -jar project.jar &
$ disown