You have to be aware of the history and the architecture of the Bot Framework to understand what was / is currently / will be available.
In a few words:
Architecture
This is a good old picture, but interesting when you understand it:

The framework is based on several parts:
- Your code (see language of development below), hosted in a web app because behind it is just an API. This part uses the (open-sourced) SDK to communicate with the Connector for example
- The bot connector (not open-sourced, and hosted on Microsoft side), in charge of handling the communication with the "channels", that is to say where your bot will be exposed
- The channels
- Other things given your needs: custom API, cognitive services (for language comprehension with LUIS for example, etc)
These are what we could call the components. Those components need to run somewhere and you also have to give details about the channels you want to use, this is why we have the followings:
Azure Bot Service
and Azure Functions bot
are 2 resources that allow you to create everything you need to host your code. You use one or the other, but not both for one bot. The 1st one is for "classic" development, the 2nd one is if you are doing Azure Functions.
Bot Channel Registration
is the mandatory resource used to setup your bot: in that resource you will indicate what is your code endpoint (so you will point to your Azure Bot Service or Azure Functions bot endpoint), and you will setup all the channels you need. There is also a quick tester provided.
Additional comment: Azure Bot Service
and Azure Functions bot
are a kind of "helper": at the beginning of the v3 framework, they were not existing and you could create a bot by creating directly an App Service + App Service Plan to host your code, and a Bot Channel Registration to define your channels.
Language of development
Up to version 3 (which was stable version up to September 2018), Bot Framework SDK was available in 2 languages: C#
and Node.js
Version 4 of the SDK arrived in public in the beginning of 2018 and is switched to Stable version those days (at least for C#
and js
). It allows 4 languages of dev:
So for Java, have a look to the dedicated repository which is still in Preview but may change soon.