Your questions and goals are jumbled.
openHAB is written in Java. If you want to code add-ons for openHAB (e.g. a binding that connects to some device or technology that isn’t already supported) you need to use Java and you need to start here.
This does nothing for you for “things, items and rules.” These are not written in Java and do not use Java. Things and Items are written in a domain specific language (DSL). For Rules you have several options.But in both cases, the “IDE” for development of openHAB configurations is VSCode with the openHAB extension.
For Rules you have the choice between Rules DSL, Jython, JavaScript, or Groovy but not Java. If you are just getting started, I would not recommend Rules DSL as it’s future is not certain and it has a number of limitations. Jython has the most documentation and examples on the forum outside of Rules DSL. But pretty much all of us use VSCode to develop Rules.
So which is your main goal, to relearn Java or develop openHAB configs? The answer to that will lead you to the correct path.
This is not done and cannot be done in Java at this time. Well, this isn’t strictly true as I’m told that there is one person who knows how to do it but this sentence is the extent of the documentation for how to do it. So for all practical purposes it cannot be done.
If you are creating openHAB configurations in text files than I recommend VSCode with the openHAB extension for all users.
You really need to spend some time reviewing the Concepts section of the docs and perhaps some of the resources at How to get started (there is no step-by-step tutorial). You seem to have a real misunderstanding about how OH works. At a very high level:
- Bindings connect to devices, APIs or technologies
- Bindings represent individual devices as Things
- Individual actuators or sensors on a device are represented as Channels
- Channels are Linked to Items, Items are the model of your home automation, they are where you go from something meaningless like
zwave:controller:node12:switch
to something meaningfule likeLivingroomLamp
; pretty much everything in OH works with Items - Items receive updates or can receive commands to control the device (i.e. send command to Item which goes to the binding where it goes out to the device)
- behaviors are defined using event driven Rules; e.g. when Item Foo receives command ON, send command ON to Item Bar
You don’t mess with JAR files. You don’t customize the binding’s Java code (unless you are trying to add a feature or fix a bug). You write Rules that work on Items. And to do that you use one of the four supported languages.