Can you develop a 2D Game Engine with Java?
wheather 2d or 3d, it is the "drawing" and you will always have to inspect drawing capability on any platform to some extent. For marginal putting of a memory onto somewhere drawn requires a platform.
As particulary for html5 canvas, you can request context-2d or context-3d to command it for drawing. Both are gpu accelerated if possible. and both draconicly differ. The 3dcontext encapsulates opengl functionality to operate on gpu's, while context 2d draws 2d primitives or alters "ImageData"- gpu accelerated as well.
I wrote an engine for Android using only java and opengl es.
Check this link:
www.gamedev.net/topic/654448-virosis/
Yes. There are several Java graphics APIs to choose from. But your post sounds like you're a bit "all over the road" with your potential choices (for example, what does knowing "SOME C++" have to do with your ability to write a game in java?).
If you are already familiar with a language (or just comfortable enough), there are tools to make a 2d game in that language. If you're not familiar enough with ANY language, pick one (it doesn't matter which) and ask questions specific to creating the game you want to create in that language.
The answer to "can I make X in Y" will most always, and most pointlessly, be "yes".