Since it looks like your java program is a daemon, you should really write a sysvinit or systemd script to start it, and not run it in the background from rc.local. rc.local is really for running something 1 time on startup that terminates, not for a process that runs in the background.
But in saying that, I don't actually see anything wrong with your script. Assuming "sudo /home/pi/house/start.sh &
" doesn't take >90% cpu all I can think is your java app is starting before some system dependency it has, has been started. And the application is stuck in some repetitive mode, OR your java app doesn't like running without a terminal.
So first try using nohup:-
nohup /home/pi/house/start.sh &
- or -
sudo nohup -u pi java -cp "*" projects.house.Main
- or -
I seem to remember issues with sudo and nohup, so use the -b flaf in sudo.
sudo -b -u pi java -cp "*" projects.house.Main
You can also try screen rather than nohup. screen will mimic a terminal and allow you to connect and disconnect to the terminal.
If none of that works, OR you want to do it the correct way. Trash those scripts and write a sysvinit or systemd script.
Here is sysvinit script to daemonize a java program. (not the best example for a pi IMO, but it should work with some modification)
http://www.jcgonzalez.com/linux-java-se ... er-example
Here is systemd. This may be your better option as Raspbian is moving away from sysvinit to systemd but I believe currently supports both. (although I have not tried systemd yet, so can't confirm).
http://ae.koroglu.org/alternative-way-t ... tos7rhel7/