Part of the Unix Philosophy is that an application should "do one thing and do it well", so Unix/Linux is packed with helpful little apps which make building larger functionality easy. For your task, one could use cdparanoia to rip and LAME to encode. All you have to do is coordinate the processes. This is, in fact, what my favorite ripper, Grip, does. Windows programmers are fond of closed, monolithic, "do everything" applications so there's fewer resources to draw upon. Maybe you could piece something together using the Java Multimedia Framework.