For simple stuff, SDL is great. It's reasonably fast, lightweight, and it's portable. From the sound of it, SDL would be perfect for your application and would probably do all that you need.
For more complex things, OpenGL is good for 3D (and can work with SDL to make your life easier). OpenAL is a good audio library. Both are portable. You could use ALSA directly for audio, but it's kinda a mess, and it isn't portable. There are lots of toolkits for OpenGL available to help you with UI type stuff. SDL has rudimentary audio support if you prefer.
SDL provides some input abstraction, but you'll probably end up just handling input directly since there's no real equivalent to DirectInput on Linux, though Linux provides some very nice facilities for "raw" input access (it's just not portable, but neither is DirectX).
Most commercial arcade games use a custom I/O board hooked up via a serial port or USB. Serial devices are readily accessible as /dev/ttySn, while "raw" USB is available via libusb. If your I/O device looks like a HID device, you can either let the standard input layers handle it (good for keyboard/mouse/game device emulating input devices) or you can attain more "raw" access using hiddev or hidraw, depending on what you need. None of this would be readily portable to other OSes except libusb, which works on just about anything you'd run on a PC.
If you need a physics library, Bullet is free and I'm told quite good.
All of these libraries mentioned are programmable from C. There are some libraries to provide C++ bindings if you prefer. Almost all Linux development is done in C and C++. Not a ton of Java. I just don't think it appeals to most Linux devs. It works fine, however. Almost no flash since the flash player/plugin architecture on Linux is pretty poorly supported by Adobe (complete lack of hardware acceleration).