Bedrock and Java are two completely different games, regardless of whether they are both "MineCraft" or not, and have no connection.
However - there are some softwares in development to try and bridge this.
They are all fairly early in development however, so you use them entirely at your own risk and support for any issues with them from us is limited (for most issues you would need to contact the software developers themselves/report issues on their issue trackers etc...).
The only one we have seen in use that appears to work alright for the most part is GeyserMC. While we do not support it from our end we will list how to use it if you wish to!
GeyserMC Website: https://geysermc.org/
Geyser has downloads for a plugin version that can be used on a Java server running on Spigot (or PaperSpigot and any other Spigot forks), Sponge, Velocity or BungeeCord - Make sure to download the relevent version you need from their downloads.
When you have downloaded the latest build of the plugin you need, added it to your server and restarted - you will then need to edit the config, it will not work in it's default state.
The sections you specifically need to edit are these sections:
Change these as follows:
- The remote > address option to the IP that your server is actually running on ("0.0.0.0" cannot be used on a shared hosting setup, always enter the actual IP for any plugin that does this - the same applies for "localhost").
- The remote > port option to the Port that your server is actually tunning on.
- The remote > auth-type option should mirror your servers Online status - if you run the server in Offline Mode, change it to "offline" otherwise leave it as "online". If you use FloodGate (see below) then change it to "floodgate".
- The bedrock > address option also to the IP that your server is actually running on ("auto" may work, but it's not guaranteed - the IP itself always will).
- The bedrock > port option to a random number between 8000 and 9000 (these are the ports we have open for plugin use).
Then save changes and restart your server again.
Java players should be able to connect as normal through the servers IP:Port as before - Bedrock clients however now should be able to connect through the servers IP, and the Bedrock Port you set up in the config!
However, please note that if the Java server is in Online Mode, when they log into the server through their Bedrock client they will be asked to log into a valid Java account.
You can bypass this with the FloodGate addon (linked on their site and detailed on their wiki), but this may add further potential for bugs/issues. If your server is in Offline Mode you will not need FloodGate as the account check won't be active.
Make sure to also keep the Geyser plugin up to date - the downloads should be checked regularly for updates.
Just to reiterate - Using this software (or any other bridge between Java and Bedrock clients) is not supported by us.
We can help with any issues with the initial installation/setup, but any issues with how it works we cannot help with. GeyserMC has a Discord you can join for support, and any issues caused by Geyser itself should be reported either through their Discord or through the issue tracker on their GitHub (this applies to any other softwares like this too - report issues to/ask for help from their developers specifically).
An additional clarification - the Sponge version of Geyser will not allow a Bedrock client to join a modded server using SpongeForge. A modded server requires clients to have the same mods installed - Bedrock cannot do this. It is primarily intended for SpongeVanilla setups.