To "run" a class, it needs to be publically visible, and it needs to have a method with the appropriate signature.
It can therefore be in any package, and can be an inner class as long as it is static and public.
I wouldn't recommend calling a class with a main() entry point "runnable" because there's an interface called "Runnable" that is for other purposes. Your "highest layer" phrase could mean a variety of things, and "Main" isn't the name of any standard class. Learn the terminology otherwise it'll be hard to understand your questions.
Better yet, try it out, and post your code when you don't understand the outcome.