Java has a standard networking stack, so should be able to talk to any TCP/IP connected device.
The Java networking stack is a wrapper around the OS native socket functions that live in libc.so. So in the end you are still calling native code, just with a nice Java API wrapper around it. The jvisa stuff is likely an (incomplete) version of the same for libvisa.so.
I am not trying to steer you to any particular programming language, which is why I also suggested C and Labview in my first post (these are the languages NI supports, although I am not 100% sure if the AD007 is still supported by modern NI-VISA releases). But if you have a CS background, then you are not likely to like G (the Labview programming language) either. Any other language that can easily call native code, like Objective C or Pascal, should also work fine.
For many problems there is no compelling reason why languages with similar paradigms are superior to each other. Static typing versus duck typing is not going to save you hours in controlling your DMM. You could easily write this software in C#, or Perl, or LISP. You could grab the VXI-11 specification and implement it on top of basic sockets. But having the correct libraries can save a lot of work. And that is were either the official NI stuff, or well-maintained third-party stuff, have an advantage. Python seems quite popular for instrument control at the moment, and hence has a decent number of third-party packages (e.g. PyVisa, PyVisa-py, python-vxi11, python-ivi).
Not sure what the state of Jython is these days, but it might even be possible to call the pure Python code running in Jython from Java
.