Begun Porting to Java

Very basic start of porting, code is still a complete mess (obviously). I will continue working on this throughout the week, figuring it out step by step.