Java es la gloria para todas estas cosas, tiene 1000 funciones que te hacen eso, si no directamente te lo facilitan mucho.
Tienes un montón de métodos que te ayudarían a implementarlo (si es que no hubiera uno que te lo hace directo), como por ejemplo el que te dice en que índice hay un carácter (primera aparición o última), obviamente lo tienes tan fácil como saber la última aparición del "." y de la "/", entre esos índices está "archivo". (suponiendo que todo archivo tiene extensión)
Si miraras la API antes de preguntar directamente esto lo tendrías, para eso va muy bien Eclipse (es el que yo usé y el que conozco), ya que escribes el "." al lado del objeto y ya te aparecen todos los métodos, por lo que solo tienes que intentar buscar en una lista algo que pueda ayudarte, así que ni tan siquiera habría que ir al javadoc, escribirías path. y dándole 1 minuto le sacas el método y como se usa.
PD: Este da el resultado que pides, eso si, el "." (de la extensión) debe de existir (si no lo puedes asegurar, tampoco cuesta nada en absoluto comprobarlo antes con el resultado del latIndexOf)
String path = "/ruta/del/archivo.exe";
String file = path.substring(path.lastIndexOf('/') + 1, path.lastIndexOf('.'));
System.out.println("Path: " + path + " -- File: " + file);
Salida:
Path: /ruta/del/archivo.exe -- File: archivo
PD2: No se como te puede salir en C y no en Java, que fuera al revés porque estás acostumbrado a usar métodos como los anteriores tiene una explicación, pero es que lo que puedas hacer aquí con C lo puedes traducir directamente a Java.