I have a basic game that I want to eventually turn into something better. The game is all Java as of right now, but I want to implement the Steamworks SDK into my game (so it can have achievements, and the Workshop, and so on). But Steamworks requires C++. Is it possible to have my full Java game implement the Steamworks SDK without rewriting it in C++? I am currently using the jMonkey Engine 3 for my game.
It's definitely possible, you would just need to create a thin layer wrapping the Steam SDK (or part of it) to java via the Java Native Interface
I'm not aware of any efforts to have an opensource library for this.
JNI is a way to go if you want full access, but the Steamworks Web API might be an easier way to go. It's basically an HTTP/HTTPS-based channel to the Steamworks functions, designed to be instantly compatible with access from Java, Python, Ruby, and really anything that isn't intrinsically C/C++.
Of course you know that the issue with JNI is that you would need to compile it seperately for each available OS, which kind of defeats the purpose of any of those languages. Getter methods can be run with basic HTTP; setters (like setting an achievement), as I understand it, require HTTPS, and a unique developer identifier; but the interface is still relatively simple.
Today there exists a ready-to-use wrapper on github:
This could be what you are looking for!
Use Steam SDK and U can use Jar if they provide. check them issue and API. and after think about implementation. http://steamcommunity.com/dev/