> For any particular Java program, there's obviously an algorithm that says whether it halts or not. The algorithm is a single statement, which says either "yes" or "no".
This isn't true.
In general, if a program hasn't halted yet you don't know if it will.
In particular, consider the Collatz conjecture. You can't even tell if your Java implementation of it will halt for a particular input, until it does.