OK. To share data between platforms, you need two things:
1. A shared data layout
2. A shared serialization protocol
For 1: the inbuilt DataTable layout is implementation specific. There is no shared (/common/agreed) shape that both .NET and Java both use, so: nothing is readily available out of the box here. Instead of using DataTable, I would strongly suggest either a DTO defined via something like a shared schema (such as .proto, but let's not get ahead of ourselves), or if you are using unpredictable data (since DataTable is often used ad-hoc): something much less formal - maybe just CSV/TSV
For 2: protobuf could indeed help with this bit, if we define a shared schema in 1; however, your question suggests you're using BinaryFormatter, in which case please let me emphasize: *whatever route you go*: don't use BinaryFormatter. It will hurt you - the only question is when.