This paper presents a compiler that translates Scheme code into the Java language. The programming language Scheme is known to be highly expressive and safe. By translating Scheme into Java, one can benefit from such features of Scheme as well as the portability of Java. Our compiler implements local procedure definitions of Scheme by translating Scheme procedures into Java inner classes. It also implements dynamic type checking of Scheme with down-casting of Java by translating each Scheme data into a Java Object. However, naively doing so requires dynamic class checking in Java for every primitive operation in Scheme and thereby incurs much overhead. We reduce this overhead of runtime type checking by exploiting partial static type information obtained through soft typing. Thus, our compiler combines the expressiveness and safety of Scheme with the portability of Java without much loss of efficiency.